Commit 76fea00a authored by Chris Mason's avatar Chris Mason

Btrfs: Add backrefs for symbolic link inodes

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 70b043f0
...@@ -404,16 +404,14 @@ static int btrfs_unlink_trans(struct btrfs_trans_handle *trans, ...@@ -404,16 +404,14 @@ static int btrfs_unlink_trans(struct btrfs_trans_handle *trans,
ret = btrfs_delete_one_dir_name(trans, root, path, di); ret = btrfs_delete_one_dir_name(trans, root, path, di);
dentry->d_inode->i_ctime = dir->i_ctime; dentry->d_inode->i_ctime = dir->i_ctime;
if (!S_ISLNK(dentry->d_inode->i_mode)) { ret = btrfs_del_inode_ref(trans, root, name, name_len,
ret = btrfs_del_inode_ref(trans, root, name, name_len, dentry->d_inode->i_ino,
dentry->d_inode->i_ino, dentry->d_parent->d_inode->i_ino);
dentry->d_parent->d_inode->i_ino); if (ret) {
if (ret) { printk("failed to delete reference to %.*s, "
printk("failed to delete reference to %.*s, " "inode %lu parent %lu\n", name_len, name,
"inode %lu parent %lu\n", name_len, name, dentry->d_inode->i_ino,
dentry->d_inode->i_ino, dentry->d_parent->d_inode->i_ino);
dentry->d_parent->d_inode->i_ino);
}
} }
err: err:
btrfs_free_path(path); btrfs_free_path(path);
...@@ -1293,13 +1291,11 @@ static int btrfs_add_link(struct btrfs_trans_handle *trans, ...@@ -1293,13 +1291,11 @@ static int btrfs_add_link(struct btrfs_trans_handle *trans,
dentry->d_parent->d_inode->i_ino, dentry->d_parent->d_inode->i_ino,
&key, btrfs_inode_type(inode)); &key, btrfs_inode_type(inode));
if (ret == 0) { if (ret == 0) {
if (!S_ISLNK(inode->i_mode)) { ret = btrfs_insert_inode_ref(trans, root,
ret = btrfs_insert_inode_ref(trans, root, dentry->d_name.name,
dentry->d_name.name, dentry->d_name.len,
dentry->d_name.len, inode->i_ino,
inode->i_ino, dentry->d_parent->d_inode->i_ino);
dentry->d_parent->d_inode->i_ino);
}
parent_inode = dentry->d_parent->d_inode; parent_inode = dentry->d_parent->d_inode;
parent_inode->i_size += dentry->d_name.len * 2; parent_inode->i_size += dentry->d_name.len * 2;
parent_inode->i_mtime = parent_inode->i_ctime = CURRENT_TIME; parent_inode->i_mtime = parent_inode->i_ctime = CURRENT_TIME;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment