btrfs: don't mess with i_nlink of unlocked inode in rename()
authorAl Viro <viro@ZenIV.linux.org.uk>
Fri, 4 Mar 2011 17:14:37 +0000 (17:14 +0000)
committerroot <Chris Mason chris.mason@oracle.com>
Mon, 28 Mar 2011 09:37:55 +0000 (05:37 -0400)
commit92986796d84ef939e304099dece32572a755b280
treed3356c2aa2bbc64166b09647c8760f7a6941df44
parentc2db1073fdf9757e6fd8b4a59d15b6ecc7a2af8a
btrfs: don't mess with i_nlink of unlocked inode in rename()

old_inode is not locked; it's not safe to play with its link
count.  Instead of bumping it and calling btrfs_unlink_inode(),
add a variant of the latter that does not do btrfs_drop_nlink()/
btrfs_update_inode(), call it instead of btrfs_inc_nlink()/
btrfs_unlink_inode() and do btrfs_update_inode() ourselves.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c