linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] NFSD: some bugfixes and updates
@ 2015-07-30 13:48 Kinglong Mee
  2015-07-30 13:51 ` [PATCH 1/5] NFSD: Store parent's stat in a sperate value Kinglong Mee
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:48 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

The first three are bugfixes, the last two are updates for EXCLUSIVE4_1.

Kinglong Mee (5):
  NFSD: Store parent's stat in a sperate value
  NFSD: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES
  NFSD: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
  NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
  NFSD: Return word2 bitmask if setting security label in OPEN/CREATE

 fs/nfsd/nfs4proc.c |  12 ++--
 fs/nfsd/nfs4xdr.c  | 158 +++++++++++++++++++++++++++++++++--------------------
 fs/nfsd/vfs.c      |   6 --
 fs/nfsd/vfs.h      |   6 ++
 4 files changed, 112 insertions(+), 70 deletions(-)

-- 
2.4.3


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

* [PATCH 1/5] NFSD: Store parent's stat in a sperate value
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
@ 2015-07-30 13:51 ` Kinglong Mee
  2015-07-30 13:52 ` [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES Kinglong Mee
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:51 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Commit ae7095a7c4 (nfsd4: helper function for getting mounted_on ino)
don't process the return value from get_parent_attributes().

Also, the following FATTR4_WORD2_LAYOUT_BLKSIZE will using stat.blksize,
using an independent value for parent's attributes.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4xdr.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 5463385..f11003c 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2674,6 +2674,9 @@ out_acl:
 		*p++ = cpu_to_be32(stat.mtime.tv_nsec);
 	}
 	if (bmval1 & FATTR4_WORD1_MOUNTED_ON_FILEID) {
+		struct kstat parent_stat;
+		u64 ino = stat.ino;
+
 		p = xdr_reserve_space(xdr, 8);
 		if (!p)
                 	goto out_resource;
@@ -2682,9 +2685,13 @@ out_acl:
 		 * and this is the root of a cross-mounted filesystem.
 		 */
 		if (ignore_crossmnt == 0 &&
-		    dentry == exp->ex_path.mnt->mnt_root)
-			get_parent_attributes(exp, &stat);
-		p = xdr_encode_hyper(p, stat.ino);
+		    dentry == exp->ex_path.mnt->mnt_root) {
+			err = get_parent_attributes(exp, &parent_stat);
+			if (err)
+				goto out_nfserr;
+			ino = parent_stat.ino;
+		}
+		p = xdr_encode_hyper(p, ino);
 	}
 #ifdef CONFIG_NFSD_PNFS
 	if ((bmval1 & FATTR4_WORD1_FS_LAYOUT_TYPES) ||
-- 
2.4.3


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

* [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
  2015-07-30 13:51 ` [PATCH 1/5] NFSD: Store parent's stat in a sperate value Kinglong Mee
@ 2015-07-30 13:52 ` Kinglong Mee
  2015-07-30 15:48   ` Christoph Hellwig
  2015-07-30 13:54 ` [PATCH 3/5] nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL Kinglong Mee
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:52 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Each bitmap needs one layout_type information,
if setting both, nfsd only return one right now.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4xdr.c | 45 +++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index f11003c..76d6653 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2140,6 +2140,27 @@ nfsd4_encode_aclname(struct xdr_stream *xdr, struct svc_rqst *rqstp,
 		return nfsd4_encode_user(xdr, rqstp, ace->who_uid);
 }
 
+static inline __be32
+nfsd4_encode_layout_type(struct xdr_stream *xdr, enum pnfs_layouttype layout_type)
+{
+	__be32 *p;
+
+	if (layout_type) {
+		p = xdr_reserve_space(xdr, 8);
+		if (!p)
+			return nfserr_resource;
+		*p++ = cpu_to_be32(1);
+		*p++ = cpu_to_be32(layout_type);
+	} else {
+		p = xdr_reserve_space(xdr, 4);
+		if (!p)
+			return nfserr_resource;
+		*p++ = cpu_to_be32(0);
+	}
+
+	return 0;
+}
+
 #define WORD0_ABSENT_FS_ATTRS (FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_FSID | \
 			      FATTR4_WORD0_RDATTR_ERROR)
 #define WORD1_ABSENT_FS_ATTRS FATTR4_WORD1_MOUNTED_ON_FILEID
@@ -2694,20 +2715,16 @@ out_acl:
 		p = xdr_encode_hyper(p, ino);
 	}
 #ifdef CONFIG_NFSD_PNFS
-	if ((bmval1 & FATTR4_WORD1_FS_LAYOUT_TYPES) ||
-	    (bmval2 & FATTR4_WORD2_LAYOUT_TYPES)) {
-		if (exp->ex_layout_type) {
-			p = xdr_reserve_space(xdr, 8);
-			if (!p)
-				goto out_resource;
-			*p++ = cpu_to_be32(1);
-			*p++ = cpu_to_be32(exp->ex_layout_type);
-		} else {
-			p = xdr_reserve_space(xdr, 4);
-			if (!p)
-				goto out_resource;
-			*p++ = cpu_to_be32(0);
-		}
+	if (bmval1 & FATTR4_WORD1_FS_LAYOUT_TYPES) {
+		status = nfsd4_encode_layout_type(xdr, exp->ex_layout_type);
+		if (status)
+			goto out;
+	}
+
+	if (bmval2 & FATTR4_WORD2_LAYOUT_TYPES) {
+		status = nfsd4_encode_layout_type(xdr, exp->ex_layout_type);
+		if (status)
+			goto out;
 	}
 
 	if (bmval2 & FATTR4_WORD2_LAYOUT_BLKSIZE) {
-- 
2.4.3


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

* [PATCH 3/5] nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
  2015-07-30 13:51 ` [PATCH 1/5] NFSD: Store parent's stat in a sperate value Kinglong Mee
  2015-07-30 13:52 ` [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES Kinglong Mee
@ 2015-07-30 13:54 ` Kinglong Mee
  2015-07-30 13:55 ` [PATCH 4/5] NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1 Kinglong Mee
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:54 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

The encode order should be as the bitmask defined order.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4xdr.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 76d6653..21e1263 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2734,12 +2734,6 @@ out_acl:
 		*p++ = cpu_to_be32(stat.blksize);
 	}
 #endif /* CONFIG_NFSD_PNFS */
-	if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) {
-		status = nfsd4_encode_security_label(xdr, rqstp, context,
-								contextlen);
-		if (status)
-			goto out;
-	}
 	if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
 		p = xdr_reserve_space(xdr, 16);
 		if (!p)
@@ -2750,6 +2744,13 @@ out_acl:
 		*p++ = cpu_to_be32(NFSD_SUPPATTR_EXCLCREAT_WORD2);
 	}
 
+	if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) {
+		status = nfsd4_encode_security_label(xdr, rqstp, context,
+								contextlen);
+		if (status)
+			goto out;
+	}
+
 	attrlen = htonl(xdr->buf->len - attrlen_offset - 4);
 	write_bytes_to_xdr_buf(xdr->buf, attrlen_offset, &attrlen, 4);
 	status = nfs_ok;
-- 
2.4.3


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

* [PATCH 4/5] NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
                   ` (2 preceding siblings ...)
  2015-07-30 13:54 ` [PATCH 3/5] nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL Kinglong Mee
@ 2015-07-30 13:55 ` Kinglong Mee
  2015-07-30 13:55 ` [PATCH 5/5] NFSD: Return word2 bitmask if setting security label in OPEN/CREATE Kinglong Mee
  2015-08-10 21:22 ` [PATCH 0/5] NFSD: some bugfixes and updates J. Bruce Fields
  5 siblings, 0 replies; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:55 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

According to rfc5661 18.16.4,
"If EXCLUSIVE4_1 was used, the client determines the attributes
 used for the verifier by comparing attrset with cva_attrs.attrmask;"

So, EXCLUSIVE4_1 also needs those bitmask used to store the verifier.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4proc.c | 12 ++++++------
 fs/nfsd/vfs.c      |  6 ------
 fs/nfsd/vfs.h      |  6 ++++++
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 90cfda7..91f05e8 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -276,13 +276,13 @@ do_open_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, stru
 			nfsd4_security_inode_setsecctx(*resfh, &open->op_label, open->op_bmval);
 
 		/*
-		 * Following rfc 3530 14.2.16, use the returned bitmask
-		 * to indicate which attributes we used to store the
-		 * verifier:
+		 * Following rfc 3530 14.2.16, and rfc 5661 18.16.4
+		 * use the returned bitmask to indicate which attributes
+		 * we used to store the verifier:
 		 */
-		if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0)
-			open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS |
-							FATTR4_WORD1_TIME_MODIFY);
+		if (nfsd_create_is_exclusive(open->op_createmode) && status == 0)
+			open->op_bmval[1] |= (FATTR4_WORD1_TIME_ACCESS |
+						FATTR4_WORD1_TIME_MODIFY);
 	} else
 		/*
 		 * Note this may exit with the parent still locked.
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index b5e077a..45c0497 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1249,12 +1249,6 @@ out_nfserr:
 
 #ifdef CONFIG_NFSD_V3
 
-static inline int nfsd_create_is_exclusive(int createmode)
-{
-	return createmode == NFS3_CREATE_EXCLUSIVE
-	       || createmode == NFS4_CREATE_EXCLUSIVE4_1;
-}
-
 /*
  * NFSv3 and NFSv4 version of nfsd_create
  */
diff --git a/fs/nfsd/vfs.h b/fs/nfsd/vfs.h
index 5be875e..fee2451 100644
--- a/fs/nfsd/vfs.h
+++ b/fs/nfsd/vfs.h
@@ -131,4 +131,10 @@ static inline __be32 fh_getattr(struct svc_fh *fh, struct kstat *stat)
 	return nfserrno(vfs_getattr(&p, stat));
 }
 
+static inline int nfsd_create_is_exclusive(int createmode)
+{
+	return createmode == NFS3_CREATE_EXCLUSIVE
+	       || createmode == NFS4_CREATE_EXCLUSIVE4_1;
+}
+
 #endif /* LINUX_NFSD_VFS_H */
-- 
2.4.3


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

* [PATCH 5/5] NFSD: Return word2 bitmask if setting security label in OPEN/CREATE
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
                   ` (3 preceding siblings ...)
  2015-07-30 13:55 ` [PATCH 4/5] NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1 Kinglong Mee
@ 2015-07-30 13:55 ` Kinglong Mee
  2015-08-10 21:22 ` [PATCH 0/5] NFSD: some bugfixes and updates J. Bruce Fields
  5 siblings, 0 replies; 8+ messages in thread
From: Kinglong Mee @ 2015-07-30 13:55 UTC (permalink / raw)
  To: J. Bruce Fields; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Security label can be set in OPEN/CRATE request, nfsd should set
the bitmask in word2 if setting success.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4xdr.c | 95 ++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 56 insertions(+), 39 deletions(-)

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 21e1263..0ff1abe 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2224,6 +2224,39 @@ static int get_parent_attributes(struct svc_export *exp, struct kstat *stat)
 	return err;
 }
 
+static __be32
+nfsd4_encode_bitmap(struct xdr_stream *xdr, u32 bmval0, u32 bmval1, u32 bmval2)
+{
+	__be32 *p;
+
+	if (bmval2) {
+		p = xdr_reserve_space(xdr, 16);
+		if (!p)
+			goto out_resource;
+		*p++ = cpu_to_be32(3);
+		*p++ = cpu_to_be32(bmval0);
+		*p++ = cpu_to_be32(bmval1);
+		*p++ = cpu_to_be32(bmval2);
+	} else if (bmval1) {
+		p = xdr_reserve_space(xdr, 12);
+		if (!p)
+			goto out_resource;
+		*p++ = cpu_to_be32(2);
+		*p++ = cpu_to_be32(bmval0);
+		*p++ = cpu_to_be32(bmval1);
+	} else {
+		p = xdr_reserve_space(xdr, 8);
+		if (!p)
+			goto out_resource;
+		*p++ = cpu_to_be32(1);
+		*p++ = cpu_to_be32(bmval0);
+	}
+
+	return 0;
+out_resource:
+	return nfserr_resource;
+}
+
 /*
  * Note: @fhp can be NULL; in this case, we might have to compose the filehandle
  * ourselves.
@@ -2321,28 +2354,9 @@ nfsd4_encode_fattr(struct xdr_stream *xdr, struct svc_fh *fhp,
 	}
 #endif /* CONFIG_NFSD_V4_SECURITY_LABEL */
 
-	if (bmval2) {
-		p = xdr_reserve_space(xdr, 16);
-		if (!p)
-			goto out_resource;
-		*p++ = cpu_to_be32(3);
-		*p++ = cpu_to_be32(bmval0);
-		*p++ = cpu_to_be32(bmval1);
-		*p++ = cpu_to_be32(bmval2);
-	} else if (bmval1) {
-		p = xdr_reserve_space(xdr, 12);
-		if (!p)
-			goto out_resource;
-		*p++ = cpu_to_be32(2);
-		*p++ = cpu_to_be32(bmval0);
-		*p++ = cpu_to_be32(bmval1);
-	} else {
-		p = xdr_reserve_space(xdr, 8);
-		if (!p)
-			goto out_resource;
-		*p++ = cpu_to_be32(1);
-		*p++ = cpu_to_be32(bmval0);
-	}
+	status = nfsd4_encode_bitmap(xdr, bmval0, bmval1, bmval2);
+	if (status)
+		goto out;
 
 	attrlen_offset = xdr->buf->len;
 	p = xdr_reserve_space(xdr, 4);
@@ -2735,13 +2749,11 @@ out_acl:
 	}
 #endif /* CONFIG_NFSD_PNFS */
 	if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
-		p = xdr_reserve_space(xdr, 16);
-		if (!p)
-			goto out_resource;
-		*p++ = cpu_to_be32(3);
-		*p++ = cpu_to_be32(NFSD_SUPPATTR_EXCLCREAT_WORD0);
-		*p++ = cpu_to_be32(NFSD_SUPPATTR_EXCLCREAT_WORD1);
-		*p++ = cpu_to_be32(NFSD_SUPPATTR_EXCLCREAT_WORD2);
+		status = nfsd4_encode_bitmap(xdr, NFSD_SUPPATTR_EXCLCREAT_WORD0,
+						  NFSD_SUPPATTR_EXCLCREAT_WORD1,
+						  NFSD_SUPPATTR_EXCLCREAT_WORD2);
+		if (status)
+			goto out;
 	}
 
 	if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) {
@@ -3068,13 +3080,12 @@ nfsd4_encode_create(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_
 	__be32 *p;
 
 	if (!nfserr) {
-		p = xdr_reserve_space(xdr, 32);
+		p = xdr_reserve_space(xdr, 20);
 		if (!p)
 			return nfserr_resource;
-		p = encode_cinfo(p, &create->cr_cinfo);
-		*p++ = cpu_to_be32(2);
-		*p++ = cpu_to_be32(create->cr_bmval[0]);
-		*p++ = cpu_to_be32(create->cr_bmval[1]);
+		encode_cinfo(p, &create->cr_cinfo);
+		nfserr = nfsd4_encode_bitmap(xdr, create->cr_bmval[0],
+				create->cr_bmval[1], create->cr_bmval[2]);
 	}
 	return nfserr;
 }
@@ -3214,16 +3225,22 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op
 	nfserr = nfsd4_encode_stateid(xdr, &open->op_stateid);
 	if (nfserr)
 		goto out;
-	p = xdr_reserve_space(xdr, 40);
+	p = xdr_reserve_space(xdr, 24);
 	if (!p)
 		return nfserr_resource;
 	p = encode_cinfo(p, &open->op_cinfo);
 	*p++ = cpu_to_be32(open->op_rflags);
-	*p++ = cpu_to_be32(2);
-	*p++ = cpu_to_be32(open->op_bmval[0]);
-	*p++ = cpu_to_be32(open->op_bmval[1]);
-	*p++ = cpu_to_be32(open->op_delegate_type);
 
+	nfserr = nfsd4_encode_bitmap(xdr, open->op_bmval[0], open->op_bmval[1],
+					open->op_bmval[2]);
+	if (nfserr)
+		goto out;
+
+	p = xdr_reserve_space(xdr, 4);
+	if (!p)
+		return nfserr_resource;
+
+	*p++ = cpu_to_be32(open->op_delegate_type);
 	switch (open->op_delegate_type) {
 	case NFS4_OPEN_DELEGATE_NONE:
 		break;
-- 
2.4.3


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

* Re: [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES
  2015-07-30 13:52 ` [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES Kinglong Mee
@ 2015-07-30 15:48   ` Christoph Hellwig
  0 siblings, 0 replies; 8+ messages in thread
From: Christoph Hellwig @ 2015-07-30 15:48 UTC (permalink / raw)
  To: Kinglong Mee; +Cc: J. Bruce Fields, linux-nfs@vger.kernel.org

On Thu, Jul 30, 2015 at 09:52:44PM +0800, Kinglong Mee wrote:
> Each bitmap needs one layout_type information,
> if setting both, nfsd only return one right now.
> 
> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>

Indeed.  Thanks for catching this.

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH 0/5] NFSD: some bugfixes and updates
  2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
                   ` (4 preceding siblings ...)
  2015-07-30 13:55 ` [PATCH 5/5] NFSD: Return word2 bitmask if setting security label in OPEN/CREATE Kinglong Mee
@ 2015-08-10 21:22 ` J. Bruce Fields
  5 siblings, 0 replies; 8+ messages in thread
From: J. Bruce Fields @ 2015-08-10 21:22 UTC (permalink / raw)
  To: Kinglong Mee; +Cc: linux-nfs@vger.kernel.org

On Thu, Jul 30, 2015 at 09:48:54PM +0800, Kinglong Mee wrote:
> The first three are bugfixes, the last two are updates for EXCLUSIVE4_1.

These all look good to me, thanks, applying.--b.

> 
> Kinglong Mee (5):
>   NFSD: Store parent's stat in a sperate value
>   NFSD: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES
>   NFSD: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
>   NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
>   NFSD: Return word2 bitmask if setting security label in OPEN/CREATE
> 
>  fs/nfsd/nfs4proc.c |  12 ++--
>  fs/nfsd/nfs4xdr.c  | 158 +++++++++++++++++++++++++++++++++--------------------
>  fs/nfsd/vfs.c      |   6 --
>  fs/nfsd/vfs.h      |   6 ++
>  4 files changed, 112 insertions(+), 70 deletions(-)
> 
> -- 
> 2.4.3

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

end of thread, other threads:[~2015-08-10 21:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-30 13:48 [PATCH 0/5] NFSD: some bugfixes and updates Kinglong Mee
2015-07-30 13:51 ` [PATCH 1/5] NFSD: Store parent's stat in a sperate value Kinglong Mee
2015-07-30 13:52 ` [PATCH 2/5] nfsd: Fix a encode bug of FS_LAYOUT_TYPES and LAYOUT_TYPES Kinglong Mee
2015-07-30 15:48   ` Christoph Hellwig
2015-07-30 13:54 ` [PATCH 3/5] nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL Kinglong Mee
2015-07-30 13:55 ` [PATCH 4/5] NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1 Kinglong Mee
2015-07-30 13:55 ` [PATCH 5/5] NFSD: Return word2 bitmask if setting security label in OPEN/CREATE Kinglong Mee
2015-08-10 21:22 ` [PATCH 0/5] NFSD: some bugfixes and updates J. Bruce Fields

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).