From d9eece4731349630e00de86d20636519556a7876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20B=C3=A4chler?= Date: Sat, 25 Jan 2014 12:15:43 +0000 Subject: [PATCH] Update patches and PKGBUILD --- ...new-dummy-pipe-for-gssd-to-hold-open.patch | 60 +++++++++-------- ...unrpc_net-gssd_running-flag-with-a-m.patch | 34 +++++----- ...d-is-running-before-attempting-to-us.patch | 28 ++++---- ...the-clntXX-dir-if-creating-the-pipe-.patch | 14 ++-- ...an-info-file-for-the-dummy-gssd-pipe.patch | 10 ++- ...anup-of-dummy-gssd-directory-when-no.patch | 14 ++-- PKGBUILD | 65 ++++++++++--------- criu-no-expert.patch | 13 +--- 8 files changed, 125 insertions(+), 113 deletions(-) rename sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch => 0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch (73%) rename sunrpc-replace-gssd_running-with-more-reliable-check.patch => 0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch (82%) rename nfs-check-gssd-running-before-krb5i-auth.patch => 0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch (64%) rename rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch => 0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch (70%) rename sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch => 0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch (90%) rename rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch => 0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch (79%) diff --git a/sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch b/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch similarity index 73% rename from sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch rename to 0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch index 805498a..2d39831 100644 --- a/sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch +++ b/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch @@ -1,5 +1,7 @@ -Bugzilla: N/A -Upstream-status: queued in NFS git tree (for 3.13/3.14?) +From 4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6 Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 14 Nov 2013 07:25:17 -0500 +Subject: [PATCH 1/6] sunrpc: create a new dummy pipe for gssd to hold open rpc.gssd will naturally hold open any pipe named */clnt*/gssd that shows up under rpc_pipefs. That behavior gives us a reliable mechanism to tell @@ -15,16 +17,17 @@ it will just return -EINVAL. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust --- - include/linux/sunrpc/rpc_pipe_fs.h | 3 +- - net/sunrpc/netns.h | 1 + - net/sunrpc/rpc_pipe.c | 93 ++++++++++++++++++++++++++++++++++- - net/sunrpc/sunrpc_syms.c | 8 +++- + include/linux/sunrpc/rpc_pipe_fs.h | 3 +- + net/sunrpc/netns.h | 1 + + net/sunrpc/rpc_pipe.c | 93 ++++++++++++++++++++++++++++++++++++-- + net/sunrpc/sunrpc_syms.c | 8 +++- 4 files changed, 100 insertions(+), 5 deletions(-) -diff -up linux-3.11.9-200.fc19.x86_64/include/linux/sunrpc/rpc_pipe_fs.h.orig linux-3.11.9-200.fc19.x86_64/include/linux/sunrpc/rpc_pipe_fs.h ---- linux-3.11.9-200.fc19.x86_64/include/linux/sunrpc/rpc_pipe_fs.h.orig 2013-09-02 16:46:10.000000000 -0400 -+++ linux-3.11.9-200.fc19.x86_64/include/linux/sunrpc/rpc_pipe_fs.h 2013-11-21 10:11:17.893026000 -0500 -@@ -64,7 +64,8 @@ enum { +diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h +index a353e03..85f1342 100644 +--- a/include/linux/sunrpc/rpc_pipe_fs.h ++++ b/include/linux/sunrpc/rpc_pipe_fs.h +@@ -84,7 +84,8 @@ enum { extern struct dentry *rpc_d_lookup_sb(const struct super_block *sb, const unsigned char *dir_name); @@ -34,9 +37,10 @@ diff -up linux-3.11.9-200.fc19.x86_64/include/linux/sunrpc/rpc_pipe_fs.h.orig li extern struct super_block *rpc_get_sb_net(const struct net *net); extern void rpc_put_sb_net(const struct net *net); -diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/netns.h.orig linux-3.11.9-200.fc19.x86_64/net/sunrpc/netns.h ---- linux-3.11.9-200.fc19.x86_64/net/sunrpc/netns.h.orig 2013-09-02 16:46:10.000000000 -0400 -+++ linux-3.11.9-200.fc19.x86_64/net/sunrpc/netns.h 2013-11-21 10:11:17.897029000 -0500 +diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h +index 779742c..8a8e841 100644 +--- a/net/sunrpc/netns.h ++++ b/net/sunrpc/netns.h @@ -14,6 +14,7 @@ struct sunrpc_net { struct cache_detail *rsi_cache; @@ -45,9 +49,10 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/netns.h.orig linux-3.11.9-200.f struct mutex pipefs_sb_lock; struct list_head all_clients; -diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c ---- linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig 2013-09-02 16:46:10.000000000 -0400 -+++ linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c 2013-11-21 10:11:17.903026000 -0500 +diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c +index bf04b30..c23458b 100644 +--- a/net/sunrpc/rpc_pipe.c ++++ b/net/sunrpc/rpc_pipe.c @@ -38,7 +38,7 @@ #define NET_NAME(net) ((net == &init_net) ? " (init_net)" : "") @@ -57,7 +62,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 static struct kmem_cache *rpc_inode_cachep __read_mostly; -@@ -1019,6 +1019,7 @@ enum { +@@ -1159,6 +1159,7 @@ enum { RPCAUTH_nfsd4_cb, RPCAUTH_cache, RPCAUTH_nfsd, @@ -65,7 +70,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 RPCAUTH_RootEOF }; -@@ -1055,6 +1056,10 @@ static const struct rpc_filelist files[] +@@ -1195,6 +1196,10 @@ static const struct rpc_filelist files[] = { .name = "nfsd", .mode = S_IFDIR | S_IRUGO | S_IXUGO, }, @@ -76,7 +81,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 }; /* -@@ -1068,13 +1073,25 @@ struct dentry *rpc_d_lookup_sb(const str +@@ -1208,13 +1213,25 @@ struct dentry *rpc_d_lookup_sb(const struct super_block *sb, } EXPORT_SYMBOL_GPL(rpc_d_lookup_sb); @@ -103,7 +108,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 } /* -@@ -1104,11 +1121,73 @@ void rpc_put_sb_net(const struct net *ne +@@ -1244,11 +1261,73 @@ void rpc_put_sb_net(const struct net *net) } EXPORT_SYMBOL_GPL(rpc_put_sb_net); @@ -178,7 +183,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 struct net *net = data; struct sunrpc_net *sn = net_generic(net, sunrpc_net_id); int err; -@@ -1126,6 +1205,13 @@ rpc_fill_super(struct super_block *sb, v +@@ -1266,6 +1345,13 @@ rpc_fill_super(struct super_block *sb, void *data, int silent) return -ENOMEM; if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL)) return -ENOMEM; @@ -192,7 +197,7 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 dprintk("RPC: sending pipefs MOUNT notification for net %p%s\n", net, NET_NAME(net)); mutex_lock(&sn->pipefs_sb_lock); -@@ -1140,6 +1226,7 @@ rpc_fill_super(struct super_block *sb, v +@@ -1280,6 +1366,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent) return 0; err_depopulate: @@ -200,10 +205,11 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/rpc_pipe.c.orig linux-3.11.9-20 blocking_notifier_call_chain(&rpc_pipefs_notifier_list, RPC_PIPEFS_UMOUNT, sb); -diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/sunrpc_syms.c.orig linux-3.11.9-200.fc19.x86_64/net/sunrpc/sunrpc_syms.c ---- linux-3.11.9-200.fc19.x86_64/net/sunrpc/sunrpc_syms.c.orig 2013-09-02 16:46:10.000000000 -0400 -+++ linux-3.11.9-200.fc19.x86_64/net/sunrpc/sunrpc_syms.c 2013-11-21 10:11:17.908026000 -0500 -@@ -44,12 +44,17 @@ static __net_init int sunrpc_init_net(st +diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c +index 3d6498a..cd30120 100644 +--- a/net/sunrpc/sunrpc_syms.c ++++ b/net/sunrpc/sunrpc_syms.c +@@ -44,12 +44,17 @@ static __net_init int sunrpc_init_net(struct net *net) if (err) goto err_unixgid; @@ -230,4 +236,6 @@ diff -up linux-3.11.9-200.fc19.x86_64/net/sunrpc/sunrpc_syms.c.orig linux-3.11.9 unix_gid_cache_destroy(net); ip_map_cache_destroy(net); rpc_proc_exit(net); +-- +1.8.5.3 diff --git a/sunrpc-replace-gssd_running-with-more-reliable-check.patch b/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch similarity index 82% rename from sunrpc-replace-gssd_running-with-more-reliable-check.patch rename to 0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch index 8cd5c00..19e04da 100644 --- a/sunrpc-replace-gssd_running-with-more-reliable-check.patch +++ b/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch @@ -1,5 +1,8 @@ -Bugzilla: N/A -Upstream-status: queued in NFS git tree (for 3.13/3.14?) +From 89f842435c630f8426f414e6030bc2ffea0d6f81 Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 14 Nov 2013 07:25:18 -0500 +Subject: [PATCH 2/6] sunrpc: replace sunrpc_net->gssd_running flag with a more + reliable check Now that we have a more reliable method to tell if gssd is running, we can replace the sn->gssd_running flag with a function that will query to @@ -14,12 +17,10 @@ extraneous newline from the message. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust --- - Fixed up to apply to 3.12.1 by Josh Boyer - - include/linux/sunrpc/rpc_pipe_fs.h | 2 ++ - net/sunrpc/auth_gss/auth_gss.c | 17 +++++++---------- - net/sunrpc/netns.h | 2 -- - net/sunrpc/rpc_pipe.c | 14 ++++++++++---- + include/linux/sunrpc/rpc_pipe_fs.h | 2 ++ + net/sunrpc/auth_gss/auth_gss.c | 17 +++++++---------- + net/sunrpc/netns.h | 2 -- + net/sunrpc/rpc_pipe.c | 14 ++++++++++---- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h @@ -35,10 +36,10 @@ index 85f1342..7f490be 100644 #endif #endif diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c -index 0846566..1ada878 100644 +index 42fdfc6..0a2aee0 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c -@@ -517,8 +517,7 @@ static void warn_gssd(void) +@@ -536,8 +536,7 @@ static void warn_gssd(void) unsigned long now = jiffies; if (time_after(now, ratelimit)) { @@ -48,7 +49,7 @@ index 0846566..1ada878 100644 ratelimit = now + 15*HZ; } } -@@ -581,7 +580,6 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred) +@@ -600,7 +599,6 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred) struct rpc_pipe *pipe; struct rpc_cred *cred = &gss_cred->gc_base; struct gss_upcall_msg *gss_msg; @@ -56,7 +57,7 @@ index 0846566..1ada878 100644 DEFINE_WAIT(wait); int err; -@@ -589,17 +587,16 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred) +@@ -608,17 +606,16 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred) __func__, from_kuid(&init_user_ns, cred->cr_uid)); retry: err = 0; @@ -94,7 +95,7 @@ index 8a8e841..94e506f 100644 extern int sunrpc_net_id; diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c -index 40aef18..ad444f3 100644 +index c23458b..5cd7ad1 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -216,14 +216,11 @@ rpc_destroy_inode(struct inode *inode) @@ -112,7 +113,7 @@ index 40aef18..ad444f3 100644 pipe = RPC_I(inode)->pipe; if (pipe == NULL) goto out; -@@ -1231,7 +1228,6 @@ int rpc_pipefs_init_net(struct net *net) +@@ -1222,7 +1219,6 @@ int rpc_pipefs_init_net(struct net *net) return PTR_ERR(sn->gssd_dummy); mutex_init(&sn->pipefs_sb_lock); @@ -120,7 +121,7 @@ index 40aef18..ad444f3 100644 sn->pipe_version = -1; return 0; } -@@ -1385,6 +1381,16 @@ err_depopulate: +@@ -1376,6 +1372,16 @@ err_depopulate: return err; } @@ -137,3 +138,6 @@ index 40aef18..ad444f3 100644 static struct dentry * rpc_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) +-- +1.8.5.3 + diff --git a/nfs-check-gssd-running-before-krb5i-auth.patch b/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch similarity index 64% rename from nfs-check-gssd-running-before-krb5i-auth.patch rename to 0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch index be81fec..87b54fc 100644 --- a/nfs-check-gssd-running-before-krb5i-auth.patch +++ b/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch @@ -1,5 +1,8 @@ -Bugzilla: N/A -Upstream-status: queued in NFS git tree (for 3.13/3.14?) +From 6aa23d76a7b549521a03b63b6d5b7880ea87eab7 Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 14 Nov 2013 07:25:19 -0500 +Subject: [PATCH 3/6] nfs: check if gssd is running before attempting to use + krb5i auth in SETCLIENTID call Currently, the client will attempt to use krb5i in the SETCLIENTID call even if rpc.gssd isn't running. When that fails, it'll then fall back to @@ -14,12 +17,13 @@ fail at a later stage of the mount attempt. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust --- - fs/nfs/nfs4client.c | 7 ++++++- - 1 files changed, 6 insertions(+), 1 deletions(-) + fs/nfs/nfs4client.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) -diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c ---- linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig 2013-09-02 16:46:10.000000000 -0400 -+++ linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c 2013-11-21 10:20:27.288286000 -0500 +diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c +index b4a160a..c1b7a80 100644 +--- a/fs/nfs/nfs4client.c ++++ b/fs/nfs/nfs4client.c @@ -10,6 +10,7 @@ #include #include @@ -28,10 +32,10 @@ diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200. #include "internal.h" #include "callback.h" #include "delegation.h" -@@ -206,7 +207,11 @@ struct nfs_client *nfs4_init_client(stru - if (clp->cl_minorversion != 0) +@@ -370,7 +371,11 @@ struct nfs_client *nfs4_init_client(struct nfs_client *clp, __set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags); __set_bit(NFS_CS_DISCRTRY, &clp->cl_flags); + __set_bit(NFS_CS_NO_RETRANS_TIMEOUT, &clp->cl_flags); - error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I); + + error = -EINVAL; @@ -41,8 +45,6 @@ diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200. if (error == -EINVAL) error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX); if (error < 0) +-- +1.8.5.3 -_______________________________________________ -kernel mailing list -kernel@lists.fedoraproject.org -https://admin.fedoraproject.org/mailman/listinfo/kernel diff --git a/rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch b/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch similarity index 70% rename from rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch rename to 0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch index e4b1a25..5f2c3da 100644 --- a/rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch +++ b/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch @@ -1,11 +1,15 @@ -Bugzilla: 1037793 -Upstream-status: submitted for 3.14 +From 3396f92f8be606ea485b0a82d4e7749a448b013b Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 5 Dec 2013 07:33:49 -0500 +Subject: [PATCH 4/6] rpc_pipe: remove the clntXX dir if creating the pipe + fails In the event that we create the gssd/clntXX dir, but the pipe creation subsequently fails, then we should remove the clntXX dir before returning. Signed-off-by: Jeff Layton +Signed-off-by: Trond Myklebust --- net/sunrpc/rpc_pipe.c | 2 ++ 1 file changed, 2 insertions(+) @@ -24,9 +28,5 @@ index 5cd7ad1..0b74c61 100644 dput(clnt_dentry); dput(gssd_dentry); -- -1.8.4.2 +1.8.5.3 --- -To unsubscribe from this list: send the line "unsubscribe linux-nfs" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch b/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch similarity index 90% rename from sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch rename to 0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch index dd3b5ba..8ef6fe2 100644 --- a/sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch +++ b/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch @@ -1,5 +1,7 @@ -Bugzilla: 1037793 -Upstream-status: submitted for 3.14 +From e2f0c83a9de331d9352185ca3642616c13127539 Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 5 Dec 2013 07:34:44 -0500 +Subject: [PATCH 5/6] sunrpc: add an "info" file for the dummy gssd pipe rpc.gssd expects to see an "info" file in each clntXX dir. Since adding the dummy gssd pipe, users that run rpc.gssd see a lot of these messages @@ -11,6 +13,7 @@ spamming the logs: Add a dummy gssd/clntXX/info file to help silence these messages. Signed-off-by: Jeff Layton +Signed-off-by: Trond Myklebust --- net/sunrpc/rpc_pipe.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) @@ -93,4 +96,5 @@ index 0b74c61..5d973b2 100644 dput(clnt_dentry); dput(gssd_dentry); -- -1.8.4.2 +1.8.5.3 + diff --git a/rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch b/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch similarity index 79% rename from rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch rename to 0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch index ed03f34..75505c3 100644 --- a/rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch +++ b/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch @@ -1,10 +1,14 @@ -Bugzilla: 1037793 -Upstream-status: submitted for 3.14 +From 23e66ba97127ff3b064d4c6c5138aa34eafc492f Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Mon, 9 Dec 2013 09:38:00 -0500 +Subject: [PATCH 6/6] rpc_pipe: fix cleanup of dummy gssd directory when + notification fails Currently, it could leak dentry references in some cases. Make sure we clean up properly. Signed-off-by: Jeff Layton +Signed-off-by: Trond Myklebust --- net/sunrpc/rpc_pipe.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) @@ -42,9 +46,5 @@ index 5d973b2..b185548 100644 RPC_PIPEFS_UMOUNT, sb); -- -1.8.4.2 +1.8.5.3 --- -To unsubscribe from this list: send the line "unsubscribe linux-nfs" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/PKGBUILD b/PKGBUILD index f0408bd..bb620ab 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -19,13 +19,24 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz" 'linux.preset' 'change-default-console-loglevel.patch' 'criu-no-expert.patch' - 'sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch' - 'sunrpc-replace-gssd_running-with-more-reliable-check.patch' - 'nfs-check-gssd-running-before-krb5i-auth.patch' - 'rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch' - 'sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch' - 'rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch' -) + '0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch' + '0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch' + '0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch' + '0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch' + '0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch' + '0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch') +md5sums=('0ecbaf65c00374eb4a826c2f9f37606f' + '6556af5e5208c041c09e27ed1c44009f' + '33b718f55049ae4ac33231cd65e08305' + 'eb14dcfd80c00852ef81ded6e826826a' + '98beb36f9b8cf16e58de2483ea9985e3' + '989dc54ff8b179b0f80333cc97c0d43f' + 'dd2adb99cd3feed6f11022562901965c' + 'b00cc399d3797cb0793e18b5bf387a50' + '7cbd2349cdf046acc37b652c06ba36be' + '10dbaf863e22b2437e68f9190d65c861' + 'd5907a721b97299f0685c583499f7820' + 'a724515b350b29c53f20e631c6cf9a14') _kernelname=${pkgbase#linux} @@ -45,22 +56,26 @@ prepare() { # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) - patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch" + patch -p1 -i "${srcdir}/change-default-console-loglevel.patch" - # allow criu without expert option set - # patch from fedora - patch -Np1 -i "${srcdir}/criu-no-expert.patch" + # allow Checkpoint/restore (for criu) without EXPERT=y + patch -p1 -i "${srcdir}/criu-no-expert.patch" # fix 15 seocnds nfs delay - patch -Np1 -i "${srcdir}/sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch" - patch -Np1 -i "${srcdir}/sunrpc-replace-gssd_running-with-more-reliable-check.patch" - patch -Np1 -i "${srcdir}/nfs-check-gssd-running-before-krb5i-auth.patch" - # fix nfs kernel oops - # #37866 - patch -Np1 -i "${srcdir}/rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch" - patch -Np1 -i "${srcdir}/sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch" + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=4b9a445e3eeb8bd9278b1ae51c1b3a651e370cd6 + patch -p1 -i "${srcdir}/0001-sunrpc-create-a-new-dummy-pipe-for-gssd-to-hold-open.patch" + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=89f842435c630f8426f414e6030bc2ffea0d6f81 + patch -p1 -i "${srcdir}/0002-sunrpc-replace-sunrpc_net-gssd_running-flag-with-a-m.patch" + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=6aa23d76a7b549521a03b63b6d5b7880ea87eab7 + patch -p1 -i "${srcdir}/0003-nfs-check-if-gssd-is-running-before-attempting-to-us.patch" - patch -Np1 -i "${srcdir}/rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch" + # fix nfs kernel oops + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=3396f92f8be606ea485b0a82d4e7749a448b013b + patch -p1 -i "${srcdir}/0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch" + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=e2f0c83a9de331d9352185ca3642616c13127539 + patch -p1 -i "${srcdir}/0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch" + # http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=23e66ba97127ff3b064d4c6c5138aa34eafc492f + patch -p1 -i "${srcdir}/0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch" if [ "${CARCH}" = "x86_64" ]; then cat "${srcdir}/config.x86_64" > ./.config @@ -342,15 +357,3 @@ for _p in ${pkgname[@]}; do done # vim:set ts=8 sts=2 sw=2 et: -md5sums=('0ecbaf65c00374eb4a826c2f9f37606f' - 'a9281e90e529795eaf10b45d70ab2868' - '6000a9c7bd83081a65611d9dfbdd8eda' - 'eb14dcfd80c00852ef81ded6e826826a' - '98beb36f9b8cf16e58de2483ea9985e3' - 'd50c1ac47394e9aec637002ef3392bd1' - 'd4a75f77e6bd5d700dcd534cd5f0dfce' - 'dc86fdc37615c97f03c1e0c31b7b833a' - '88eef9d3b5012ef7e82af1af8cc4e517' - 'cec0bb8981936eab2943b2009b7a6fff' - '88d9cddf9e0050a76ec4674f264fb2a1' - 'cb9016630212ef07b168892fbcfd4e5d') diff --git a/criu-no-expert.patch b/criu-no-expert.patch index 2124427..9bbc028 100644 --- a/criu-no-expert.patch +++ b/criu-no-expert.patch @@ -1,8 +1,8 @@ diff --git a/init/Kconfig b/init/Kconfig -index be8b7f5..7461760 100644 +index 4e5d96a..4b94ffe 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -989,7 +989,7 @@ config DEBUG_BLK_CGROUP +@@ -1078,7 +1078,7 @@ config DEBUG_BLK_CGROUP endif # CGROUPS config CHECKPOINT_RESTORE @@ -11,12 +11,3 @@ index be8b7f5..7461760 100644 default n help Enables additional kernel features in a sake of checkpoint/restore. -@@ -1000,7 +1000,7 @@ config CHECKPOINT_RESTORE - If unsure, say N here. - - menuconfig NAMESPACES -- bool "Namespaces support" if EXPERT -+ bool "Namespaces support" - default !EXPERT - help - Provides the way to make tasks work with different objects using