Patchwork nfs-utils: Add scratch directory for NFS upcall state storage

login
register
mail settings
Submitter Rich Dubielzig
Date Feb. 25, 2013, 6:44 p.m.
Message ID <1361817899-22185-1-git-send-email-rich.dubielzig@windriver.com>
Download mbox | patch
Permalink /patch/45049/
State New
Headers show

Comments

Rich Dubielzig - Feb. 25, 2013, 6:44 p.m.
When the /var/lib/nfs/v4recovery directory is not present, NFSD cannot
record the upcall state and cannot end the 90-second grace period on
startup.  This is true even when NFS4 is not being served according to
nfsstat.

More details and discussion here:
https://lkml.org/lkml/2012/6/11/206

Signed-off-by: Rich Dubielzig <rich.dubielzig@windriver.com>
---
 .../nfs-utils/nfs-utils_1.2.3.bb                   |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Saul Wold - Feb. 25, 2013, 11:45 p.m.
On 02/25/2013 10:44 AM, Rich Dubielzig wrote:
> When the /var/lib/nfs/v4recovery directory is not present, NFSD cannot
> record the upcall state and cannot end the 90-second grace period on
> startup.  This is true even when NFS4 is not being served according to
> nfsstat.
>
> More details and discussion here:
> https://lkml.org/lkml/2012/6/11/206
>
> Signed-off-by: Rich Dubielzig <rich.dubielzig@windriver.com>
> ---
>   .../nfs-utils/nfs-utils_1.2.3.bb                   |    5 ++++-
>   1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
> index 84c4464..a0b2399 100644
> --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
> +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
> @@ -12,7 +12,7 @@ DEPENDS = "libcap libnfsidmap libevent util-linux tcp-wrappers"
>   RDEPENDS_${PN} = "rpcbind"
>   RRECOMMENDS_${PN} = "kernel-module-nfsd"
>
> -PR = "r4"
> +PR = "r5"
>
>   SRC_URI = "${SOURCEFORGE_MIRROR}/nfs/nfs-utils-${PV}.tar.bz2 \
>              file://nfs-utils-1.0.6-uclibc.patch \
> @@ -58,4 +58,7 @@ do_install_append () {
>   	rm -f ${D}${sbindir}/rpcdebug
>   	rm -f ${D}${sbindir}/rpcgen
>   	rm -f ${D}${sbindir}/locktest
> +
> +	# needed to allow NFSD to end its grace period
> +	install -d ${D}/var/lib/nfs/v4recovery

This should really use ${localstatedir} instead of var, it would also be 
better to co-locate this with the other directory creations earlier in 
the do_install_append().

Sau!

>   }
>
Rich Dubielzig - Feb. 26, 2013, 8:02 p.m.
I can make this change, but if ${localstatedir} ends up being different than /var it would not be consistent with current kernel code which hardcodes the path "/var/lib/nfs/v4recovery" by default in fs/nfsd/nfs4recover.c

http://lxr.linux.no/#linux+v3.8/fs/nfsd/nfs4recover.c

-Rich
Khem Raj - Feb. 27, 2013, 12:03 a.m.
On Tue, Feb 26, 2013 at 12:02 PM, Dubielzig, Rich
<rich.dubielzig@windriver.com> wrote:
> I can make this change, but if ${localstatedir} ends up being different than /var it would not be consistent with current kernel code which hardcodes the path "/var/lib/nfs/v4recovery" by default in fs/nfsd/nfs4recover.c
>
> http://lxr.linux.no/#linux+v3.8/fs/nfsd/nfs4recover.c

too bad. I think if you add this to commend and keep it hardcoded that
will be better for future reference IMO so we know why we
used /var and not conf var.

>
> -Rich
> ________________________________________
> From: Saul Wold [sgw@linux.intel.com]
> Sent: Monday, February 25, 2013 3:45 PM
> To: Dubielzig, Rich
> Cc: Openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] nfs-utils: Add scratch directory for NFS upcall state storage
>
> On 02/25/2013 10:44 AM, Rich Dubielzig wrote:
>> When the /var/lib/nfs/v4recovery directory is not present, NFSD cannot
>> record the upcall state and cannot end the 90-second grace period on
>> startup.  This is true even when NFS4 is not being served according to
>> nfsstat.
>>
>> More details and discussion here:
>> https://lkml.org/lkml/2012/6/11/206
>>
>> Signed-off-by: Rich Dubielzig <rich.dubielzig@windriver.com>
>> ---
>>   .../nfs-utils/nfs-utils_1.2.3.bb                   |    5 ++++-
>>   1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
>> index 84c4464..a0b2399 100644
>> --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
>> +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
>> @@ -12,7 +12,7 @@ DEPENDS = "libcap libnfsidmap libevent util-linux tcp-wrappers"
>>   RDEPENDS_${PN} = "rpcbind"
>>   RRECOMMENDS_${PN} = "kernel-module-nfsd"
>>
>> -PR = "r4"
>> +PR = "r5"
>>
>>   SRC_URI = "${SOURCEFORGE_MIRROR}/nfs/nfs-utils-${PV}.tar.bz2 \
>>              file://nfs-utils-1.0.6-uclibc.patch \
>> @@ -58,4 +58,7 @@ do_install_append () {
>>       rm -f ${D}${sbindir}/rpcdebug
>>       rm -f ${D}${sbindir}/rpcgen
>>       rm -f ${D}${sbindir}/locktest
>> +
>> +     # needed to allow NFSD to end its grace period
>> +     install -d ${D}/var/lib/nfs/v4recovery
>
> This should really use ${localstatedir} instead of var, it would also be
> better to co-locate this with the other directory creations earlier in
> the do_install_append().
>
> Sau!
>
>>   }
>>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
index 84c4464..a0b2399 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb
@@ -12,7 +12,7 @@  DEPENDS = "libcap libnfsidmap libevent util-linux tcp-wrappers"
 RDEPENDS_${PN} = "rpcbind"
 RRECOMMENDS_${PN} = "kernel-module-nfsd"
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/nfs/nfs-utils-${PV}.tar.bz2 \
            file://nfs-utils-1.0.6-uclibc.patch \
@@ -58,4 +58,7 @@  do_install_append () {
 	rm -f ${D}${sbindir}/rpcdebug
 	rm -f ${D}${sbindir}/rpcgen
 	rm -f ${D}${sbindir}/locktest
+
+	# needed to allow NFSD to end its grace period
+	install -d ${D}/var/lib/nfs/v4recovery
 }