Linux-NFS Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] nfsd: depend on CRYPTO_MD5 for legacy client tracking
@ 2019-12-03  6:52 Patrick Steinhardt
  2019-12-03 16:50 ` Chuck Lever
  2019-12-04  6:13 ` [PATCH v2] " Patrick Steinhardt
  0 siblings, 2 replies; 4+ messages in thread
From: Patrick Steinhardt @ 2019-12-03  6:52 UTC (permalink / raw)
  To: linux-nfs; +Cc: Patrick Steinhardt, Chuck Lever, J. Bruce Fields

The legacy client tracking infrastructure of nfsd makes use of MD5 to
derive a client's recovery directory name. As the nfsd module doesn't
declare any dependency on CRYPTO_MD5, though, it may fail to allocate
the hash if the kernel was compiled without it. As a result, generation
of client recovery directories will fail with the following error:

    NFSD: unable to generate recoverydir name

The dependency was removed as a seemingly redundant dependency back in
6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
2008-02-11). But in fact, even then the MD5 module was pulled in only
when RPCSEC_GSS_KRB5 or RPCSEC_GSS_KRB5 was selected.

Fix the issue by adding back an explicit dependency on CRYPTO_MD5.

Fixes: 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig)
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 fs/nfsd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index c4b1a89b8845..f2f81561ebb6 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -73,6 +73,7 @@ config NFSD_V4
 	select NFSD_V3
 	select FS_POSIX_ACL
 	select SUNRPC_GSS
+	select CRYPTO_MD5
 	select CRYPTO_SHA256
 	select GRACE_PERIOD
 	help
-- 
2.24.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] nfsd: depend on CRYPTO_MD5 for legacy client tracking
  2019-12-03  6:52 [PATCH] nfsd: depend on CRYPTO_MD5 for legacy client tracking Patrick Steinhardt
@ 2019-12-03 16:50 ` Chuck Lever
  2019-12-04  6:13 ` [PATCH v2] " Patrick Steinhardt
  1 sibling, 0 replies; 4+ messages in thread
From: Chuck Lever @ 2019-12-03 16:50 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Linux NFS Mailing List, Bruce Fields

Hi Patrick-

> On Dec 3, 2019, at 1:52 AM, Patrick Steinhardt <ps@pks.im> wrote:
> 
> The legacy client tracking infrastructure of nfsd makes use of MD5 to
> derive a client's recovery directory name. As the nfsd module doesn't
> declare any dependency on CRYPTO_MD5, though, it may fail to allocate
> the hash if the kernel was compiled without it. As a result, generation
> of client recovery directories will fail with the following error:
> 
>    NFSD: unable to generate recoverydir name
> 
> The dependency was removed as a seemingly redundant dependency back in
> 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
> 2008-02-11). But in fact, even then the MD5 module was pulled in only
> when RPCSEC_GSS_KRB5 or RPCSEC_GSS_KRB5 was selected.
> 
> Fix the issue by adding back an explicit dependency on CRYPTO_MD5.
> 
> Fixes: 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig)

Just a quibble with your Fixes: tag.

At that time, selecting NFSv4 support did bring in CRYPTO, because
NFSv4 support always selected RPCSEC_GSS_KRB5.

It was a later commit that removed RPCSEC_GSS_KRB5:

df486a25900f ("NFS: Fix the selection of security flavours in Kconfig")


> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> fs/nfsd/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index c4b1a89b8845..f2f81561ebb6 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -73,6 +73,7 @@ config NFSD_V4
> 	select NFSD_V3
> 	select FS_POSIX_ACL
> 	select SUNRPC_GSS
> +	select CRYPTO_MD5
> 	select CRYPTO_SHA256
> 	select GRACE_PERIOD
> 	help
> -- 
> 2.24.0
> 

--
Chuck Lever




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] nfsd: depend on CRYPTO_MD5 for legacy client tracking
  2019-12-03  6:52 [PATCH] nfsd: depend on CRYPTO_MD5 for legacy client tracking Patrick Steinhardt
  2019-12-03 16:50 ` Chuck Lever
@ 2019-12-04  6:13 ` " Patrick Steinhardt
  2019-12-06 21:03   ` J. Bruce Fields
  1 sibling, 1 reply; 4+ messages in thread
From: Patrick Steinhardt @ 2019-12-04  6:13 UTC (permalink / raw)
  To: linux-nfs; +Cc: Patrick Steinhardt, Chuck Lever, J. Bruce Fields

The legacy client tracking infrastructure of nfsd makes use of MD5 to
derive a client's recovery directory name. As the nfsd module doesn't
declare any dependency on CRYPTO_MD5, though, it may fail to allocate
the hash if the kernel was compiled without it. As a result, generation
of client recovery directories will fail with the following error:

    NFSD: unable to generate recoverydir name

The explicit dependency on CRYPTO_MD5 was removed as redundant back in
6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
2008-02-11) as it was already implicitly selected via RPCSEC_GSS_KRB5.
This broke when RPCSEC_GSS_KRB5 was made optional for NFSv4 in commit
df486a25900f (NFS: Fix the selection of security flavours in Kconfig) at
a later point.

Fix the issue by adding back an explicit dependency on CRYPTO_MD5.

Fixes: df486a25900f (NFS: Fix the selection of security flavours in Kconfig)
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---

The only change compared to v1 is in the commit message. As
pointed out by Chuck, it wasn't actually commit 6aaa67b5f3b9
which broke it, but the later df486a25900f. I've reworded the
commit message and fixed the Fixes tag to account for that.

 fs/nfsd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index c4b1a89b8845..f2f81561ebb6 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -73,6 +73,7 @@ config NFSD_V4
 	select NFSD_V3
 	select FS_POSIX_ACL
 	select SUNRPC_GSS
+	select CRYPTO_MD5
 	select CRYPTO_SHA256
 	select GRACE_PERIOD
 	help
-- 
2.24.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] nfsd: depend on CRYPTO_MD5 for legacy client tracking
  2019-12-04  6:13 ` [PATCH v2] " Patrick Steinhardt
@ 2019-12-06 21:03   ` J. Bruce Fields
  0 siblings, 0 replies; 4+ messages in thread
From: J. Bruce Fields @ 2019-12-06 21:03 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: linux-nfs, Chuck Lever

Thanks, applied your v2.

--b.

On Wed, Dec 04, 2019 at 07:13:22AM +0100, Patrick Steinhardt wrote:
> The legacy client tracking infrastructure of nfsd makes use of MD5 to
> derive a client's recovery directory name. As the nfsd module doesn't
> declare any dependency on CRYPTO_MD5, though, it may fail to allocate
> the hash if the kernel was compiled without it. As a result, generation
> of client recovery directories will fail with the following error:
> 
>     NFSD: unable to generate recoverydir name
> 
> The explicit dependency on CRYPTO_MD5 was removed as redundant back in
> 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
> 2008-02-11) as it was already implicitly selected via RPCSEC_GSS_KRB5.
> This broke when RPCSEC_GSS_KRB5 was made optional for NFSv4 in commit
> df486a25900f (NFS: Fix the selection of security flavours in Kconfig) at
> a later point.
> 
> Fix the issue by adding back an explicit dependency on CRYPTO_MD5.
> 
> Fixes: df486a25900f (NFS: Fix the selection of security flavours in Kconfig)
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> 
> The only change compared to v1 is in the commit message. As
> pointed out by Chuck, it wasn't actually commit 6aaa67b5f3b9
> which broke it, but the later df486a25900f. I've reworded the
> commit message and fixed the Fixes tag to account for that.
> 
>  fs/nfsd/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index c4b1a89b8845..f2f81561ebb6 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -73,6 +73,7 @@ config NFSD_V4
>  	select NFSD_V3
>  	select FS_POSIX_ACL
>  	select SUNRPC_GSS
> +	select CRYPTO_MD5
>  	select CRYPTO_SHA256
>  	select GRACE_PERIOD
>  	help
> -- 
> 2.24.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-03  6:52 [PATCH] nfsd: depend on CRYPTO_MD5 for legacy client tracking Patrick Steinhardt
2019-12-03 16:50 ` Chuck Lever
2019-12-04  6:13 ` [PATCH v2] " Patrick Steinhardt
2019-12-06 21:03   ` J. Bruce Fields

Linux-NFS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nfs/0 linux-nfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nfs linux-nfs/ https://lore.kernel.org/linux-nfs \
		linux-nfs@vger.kernel.org
	public-inbox-index linux-nfs

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-nfs


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git