btrfs: simplify insert_orphan_item (Closes: #782362)

svn path=/dists/sid/linux/; revision=22501
This commit is contained in:
Ben Hutchings 2015-04-13 00:40:50 +00:00
parent 5afed1816b
commit a283a09236
3 changed files with 50 additions and 0 deletions

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
linux (3.16.7-ckt9-2~bwh.1) UNRELEASED; urgency=medium
* btrfs: simplify insert_orphan_item (Closes: #782362)
-- Ben Hutchings <ben@decadent.org.uk> Sat, 11 Apr 2015 00:57:57 +0100
linux (3.16.7-ckt9-1) unstable; urgency=medium
* New upstream stable update:

View File

@ -0,0 +1,42 @@
From: David Sterba <dsterba@suse.cz>
Date: Fri, 2 Jan 2015 19:12:57 +0100
Subject: btrfs: simplify insert_orphan_item
Origin: https://git.kernel.org/linus/9c4f61f01d269815bb7c37be3ede59c5587747c6
Bug-Debian: https://bugs.debian.org/782362
We can search and add the orphan item in one go,
btrfs_insert_orphan_item will find out if the item already exists.
Signed-off-by: David Sterba <dsterba@suse.cz>
---
fs/btrfs/tree-log.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -1263,21 +1263,13 @@ out:
}
static int insert_orphan_item(struct btrfs_trans_handle *trans,
- struct btrfs_root *root, u64 offset)
+ struct btrfs_root *root, u64 ino)
{
int ret;
- struct btrfs_path *path;
- path = btrfs_alloc_path();
- if (!path)
- return -ENOMEM;
-
- ret = btrfs_find_item(root, path, BTRFS_ORPHAN_OBJECTID,
- offset, BTRFS_ORPHAN_ITEM_KEY, NULL);
- if (ret > 0)
- ret = btrfs_insert_orphan_item(trans, root, offset);
-
- btrfs_free_path(path);
+ ret = btrfs_insert_orphan_item(trans, root, ino);
+ if (ret == -EEXIST)
+ ret = 0;
return ret;
}

View File

@ -576,3 +576,5 @@ debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
debian/usb-avoid-abi-change-in-3.16.7-ckt8.patch
debian/procfs-avoid-abi-change-in-3.16.7-ckt8.patch
bugfix/all/btrfs-simplify-insert_orphan_item.patch