commit 90c861c466437c9aa95771453ab521bfaff75048
Author: Andrzej Zawadzki <[email protected]>
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 <[email protected]>
+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 <[email protected]>
+
+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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to