aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
authorJohn Stultz <johnstul@us.ibm.com>2010-04-16 21:30:04 -0400
committerThomas Gleixner <tglx@linutronix.de>2010-04-27 11:33:04 -0400
commita0ded0f1eb853e96f3386b4498b42ce6726394ad (patch)
tree0e3a4339036aacb0d1c32d9459292d46a4dc66db /fs/btrfs/inode.c
parentd13cdfecb0d1132e630867250d3e2f21ec6d29f4 (diff)
Fixup some compilation warnings and errors
Amit Arora noticed some compile issues with coda, and an fs.h include issue, so so this patch fixes those along with btrfs warnings. Thanks to Amit for the testing! Signed-off-by: John Stultz <johnstul@us.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r--fs/btrfs/inode.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 9dcc771ff485..3288f3a2899e 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -1991,8 +1991,14 @@ void btrfs_add_delayed_iput(struct inode *inode)
1991 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; 1991 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info;
1992 struct delayed_iput *delayed; 1992 struct delayed_iput *delayed;
1993 1993
1994 if (atomic_add_unless(&inode->i_count, -1, 1)) 1994 spin_lock(&inode->i_lock);
1995 if (inode->i_count == 1) {
1996 spin_unlock(&inode->i_lock);
1995 return; 1997 return;
1998 }
1999 inode->i_count--;
2000 spin_unlock(&inode->i_lock);
2001
1996 2002
1997 delayed = kmalloc(sizeof(*delayed), GFP_NOFS | __GFP_NOFAIL); 2003 delayed = kmalloc(sizeof(*delayed), GFP_NOFS | __GFP_NOFAIL);
1998 delayed->inode = inode; 2004 delayed->inode = inode;
@@ -3600,8 +3606,14 @@ again:
3600 objectid = entry->vfs_inode.i_ino + 1; 3606 objectid = entry->vfs_inode.i_ino + 1;
3601 inode = igrab(&entry->vfs_inode); 3607 inode = igrab(&entry->vfs_inode);
3602 if (inode) { 3608 if (inode) {
3609 int count;
3603 spin_unlock(&root->inode_lock); 3610 spin_unlock(&root->inode_lock);
3604 if (atomic_read(&inode->i_count) > 1) 3611
3612 spin_lock(&inode->i_lock);
3613 count = inode->i_count;
3614 spin_unlock(&inode->i_lock);
3615
3616 if (count > 1)
3605 d_prune_aliases(inode); 3617 d_prune_aliases(inode);
3606 /* 3618 /*
3607 * btrfs_drop_inode will remove it from 3619 * btrfs_drop_inode will remove it from