[packages/kernel] - add patch for btrfs https://btrfs.wiki.kernel.org/index.php/Gotchas
zawadaa
zawadaa at pld-linux.org
Mon Apr 6 22:57:05 CEST 2015
commit 90c861c466437c9aa95771453ab521bfaff75048
Author: Andrzej Zawadzki <zawadaa at pld-linux.org>
Date: Mon Apr 6 22:56:29 2015 +0200
- add patch for btrfs
https://btrfs.wiki.kernel.org/index.php/Gotchas
kernel-btrfs_deadlock_mount.patch | 43 +++++++++++++++++++++++++++++++++++++++
kernel.spec | 4 +++-
2 files changed, 46 insertions(+), 1 deletion(-)
---
diff --git a/kernel.spec b/kernel.spec
index 5a1738c..9a08919 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -70,7 +70,7 @@
%define have_pcmcia 0
%endif
-%define rel 2
+%define rel 3
%define basever 3.19
%define postver .3
@@ -234,6 +234,7 @@ Patch505: dm-crypt-sort-requests.patch
Patch2000: kernel-small_fixes.patch
Patch2001: kernel-pwc-uncompress.patch
Patch2003: kernel-regressions.patch
+Patch2004: kernel-btrfs_deadlock_mount.patch
# bzr co lp:apparmor
# ls apparmor/kernel-patches/3.12
@@ -750,6 +751,7 @@ cd linux-%{basever}
%patch2000 -p1
%patch2001 -p1
#%patch2003 -p1
+%patch2004 -p1
# Do not remove this, please!
#%%patch50000 -p1
diff --git a/kernel-btrfs_deadlock_mount.patch b/kernel-btrfs_deadlock_mount.patch
new file mode 100644
index 0000000..9430d58
--- /dev/null
+++ b/kernel-btrfs_deadlock_mount.patch
@@ -0,0 +1,43 @@
+From 9c4f61f01d269815bb7c37be3ede59c5587747c6 Mon Sep 17 00:00:00 2001
+From: David Sterba <dsterba at suse.cz>
+Date: Fri, 2 Jan 2015 19:12:57 +0100
+Subject: btrfs: simplify insert_orphan_item
+
+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 at suse.cz>
+
+diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
+index 5be45c1..25a1c36 100644
+--- a/fs/btrfs/tree-log.c
++++ b/fs/btrfs/tree-log.c
+@@ -1254,21 +1254,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;
+ }
+--
+cgit v0.10.2
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/90c861c466437c9aa95771453ab521bfaff75048
More information about the pld-cvs-commit
mailing list