summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2010-01-29 15:38:35 -0800
committerThomas Gleixner <tglx@linutronix.de>2010-04-27 17:32:55 +0200
commit5364019193759010b5910897330f6f1ed5b58cc7 (patch)
tree781b7b0bae0f814d0b74124a894ff668ed41d657
parent973d7b552f168e9a895cbf0df7711de126f2b638 (diff)
downloadlwn-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.c3
-rw-r--r--fs/fs-writeback.c5
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);
}