From faab83bbcd9e001077e42a7c085f1e871997647f Mon Sep 17 00:00:00 2001 From: David Howells Date: Tue, 15 May 2007 23:57:02 -0700 Subject: AFS: write back dirty data on unmount Fix AFS to write back dirty on unmounting. This didn't happen because afs_super_ops.drop_inode was pointing to generic_delete_inode. Now this pointer is left set to NULL so that the default behaviour occurs instead. Signed-off-by: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/afs/super.c | 1 - 1 file changed, 1 deletion(-) (limited to 'fs') diff --git a/fs/afs/super.c b/fs/afs/super.c index 579af632c8e..370cecc910d 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c @@ -47,7 +47,6 @@ struct file_system_type afs_fs_type = { static const struct super_operations afs_super_ops = { .statfs = afs_statfs, .alloc_inode = afs_alloc_inode, - .drop_inode = generic_delete_inode, .write_inode = afs_write_inode, .destroy_inode = afs_destroy_inode, .clear_inode = afs_clear_inode, -- cgit v1.2.3 From bb33ed6345d6156484f39089aa8b52f44ce76609 Mon Sep 17 00:00:00 2001 From: David Howells Date: Tue, 15 May 2007 23:57:04 -0700 Subject: AFS: Fix afs_prepare_write() afs_prepare_write() should not mark a page up to date if it only partially fills it in, in expectation of the caller filling in the rest prior to calling commit_write(). commit_write(), however, should mark the page up to date. Signed-off-by: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/afs/write.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'fs') diff --git a/fs/afs/write.c b/fs/afs/write.c index 28f37516c12..a03b92a0fe1 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -206,7 +206,6 @@ int afs_prepare_write(struct file *file, struct page *page, _leave(" = %d [prep]", ret); return ret; } - SetPageUptodate(page); } try_again: @@ -311,8 +310,8 @@ int afs_commit_write(struct file *file, struct page *page, spin_unlock(&vnode->writeback_lock); } + SetPageUptodate(page); set_page_dirty(page); - if (PageDirty(page)) _debug("dirtied"); -- cgit v1.2.3