diff options
author | Nick Piggin <npiggin@suse.de> | 2010-01-29 15:38:35 -0800 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-04-27 17:32:55 +0200 |
commit | 5364019193759010b5910897330f6f1ed5b58cc7 (patch) | |
tree | 781b7b0bae0f814d0b74124a894ff668ed41d657 | |
parent | 973d7b552f168e9a895cbf0df7711de126f2b638 (diff) | |
download | lwn-5364019193759010b5910897330f6f1ed5b58cc7.tar.gz lwn-5364019193759010b5910897330f6f1ed5b58cc7.zip |
fs-fixes
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | fs/autofs4/root.c | 3 | ||||
-rw-r--r-- | fs/fs-writeback.c | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index 9e108ae491a8..f652c4cd583b 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c @@ -947,13 +947,14 @@ static int autofs4_dir_rmdir(struct inode *dir, struct dentry *dentry) return -EACCES; spin_lock(&autofs4_lock); + spin_lock(&sbi->lookup_lock); spin_lock(&dentry->d_lock); if (!list_empty(&dentry->d_subdirs)) { spin_unlock(&dentry->d_lock); + spin_unlock(&sbi->lookup_lock); spin_unlock(&autofs4_lock); return -ENOTEMPTY; } - spin_lock(&sbi->lookup_lock); if (list_empty(&ino->expiring)) list_add(&ino->expiring, &sbi->expiring_list); spin_unlock(&sbi->lookup_lock); diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 5fc0515a0e85..4682776308d9 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -650,8 +650,8 @@ again: } if (inode->i_state & (I_NEW | I_WILL_FREE)) { - spin_unlock(&inode->i_lock); requeue_io(inode); + spin_unlock(&inode->i_lock); continue; } @@ -665,8 +665,8 @@ again: } if (pin_sb_for_writeback(wbc, inode, &pin_sb)) { - spin_unlock(&inode->i_lock); requeue_io(inode); + spin_unlock(&inode->i_lock); continue; } @@ -817,6 +817,7 @@ retry: goto retry; } inode_wait_for_writeback(inode); + spin_unlock(&inode->i_lock); } spin_unlock(&wb_inode_list_lock); } |