diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2011-04-13 13:19:21 +0800 |
---|---|---|
committer | Li Zefan <lizf@cn.fujitsu.com> | 2011-04-13 14:25:32 +0800 |
commit | 3153495d8ed6a9bb9f00aea42c18dc488a885dd6 (patch) | |
tree | ee1b57cff9be737fee9d4e35290e3c6586785de8 /fs/btrfs | |
parent | b9e03af0bcc11310f6be4a3951c9ee2c26465011 (diff) | |
download | lwn-3153495d8ed6a9bb9f00aea42c18dc488a885dd6.tar.gz lwn-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/btrfs')
-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); |