diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2011-04-13 07:19:21 +0200 |
---|---|---|
committer | Li Zefan <lizf@cn.fujitsu.com> | 2011-04-13 08:25:32 +0200 |
commit | 3153495d8ed6a9bb9f00aea42c18dc488a885dd6 (patch) | |
tree | ee1b57cff9be737fee9d4e35290e3c6586785de8 /fs | |
parent | Btrfs: Check if btrfs_next_leaf() returns error in btrfs_real_readdir() (diff) | |
download | linux-3153495d8ed6a9bb9f00aea42c18dc488a885dd6.tar.xz linux-3153495d8ed6a9bb9f00aea42c18dc488a885dd6.zip |
Btrfs: Fix incorrect inode nlink in btrfs_link()
Link count of the inode is not decreased if btrfs_set_inode_index()
fails.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Singed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/inode.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index b9f7f5258343..a4157cfdd533 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -4846,9 +4846,6 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir, if (inode->i_nlink == ~0U) return -EMLINK; - btrfs_inc_nlink(inode); - inode->i_ctime = CURRENT_TIME; - err = btrfs_set_inode_index(dir, &index); if (err) goto fail; @@ -4864,6 +4861,9 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir, goto fail; } + btrfs_inc_nlink(inode); + inode->i_ctime = CURRENT_TIME; + btrfs_set_trans_block_group(trans, dir); ihold(inode); |