In order to mimic the way that NFSv4 ACLs are implemented we have created a structure to be used to pass label data up and down the call chain. This patch adds the new structure and new members to the required NFSv4 call structures. Signed-off-by: Matthew N. Dodd <Matthew.Dodd@xxxxxxxxxx> Signed-off-by: David P. Quigley <dpquigl@xxxxxxxxxxxxx> --- include/linux/nfs4.h | 6 ++++++ include/linux/nfs_xdr.h | 3 +++ include/linux/nfsd/xdr4.h | 3 +++ 3 files changed, 12 insertions(+), 0 deletions(-) diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 144eacf..dd99b27 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h @@ -112,6 +112,12 @@ struct nfs4_acl { struct nfs4_ace aces[0]; }; +struct nfs4_label { + void *label; + u32 len; +}; + + typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier; typedef struct { char data[NFS4_STATEID_SIZE]; } nfs4_stateid; diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 0d77568..c4fa2df 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -135,6 +135,7 @@ struct nfs_openargs { const struct nfs_server *server; /* Needed for ID mapping */ const u32 * bitmask; __u32 claim; + const struct nfs4_label *label; }; struct nfs_openres { @@ -353,6 +354,7 @@ struct nfs_setattrargs { struct iattr * iap; const struct nfs_server * server; /* Needed for name mapping */ const u32 * bitmask; + const struct nfs4_label * label; }; struct nfs_setaclargs { @@ -577,6 +579,7 @@ struct nfs4_create_arg { const struct iattr * attrs; const struct nfs_fh * dir_fh; const u32 * bitmask; + const struct nfs4_label * label; }; struct nfs4_create_res { diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h index 27bd3e3..a0f3d79 100644 --- a/include/linux/nfsd/xdr4.h +++ b/include/linux/nfsd/xdr4.h @@ -94,6 +94,7 @@ struct nfsd4_create { struct iattr cr_iattr; /* request */ struct nfsd4_change_info cr_cinfo; /* response */ struct nfs4_acl *cr_acl; + struct nfs4_label *cr_label; }; #define cr_linklen u.link.namelen #define cr_linkname u.link.name @@ -223,6 +224,7 @@ struct nfsd4_open { int op_truncate; /* used during processing */ struct nfs4_stateowner *op_stateowner; /* used during processing */ struct nfs4_acl *op_acl; + struct nfs4_label *op_label; }; #define op_iattr u.iattr #define op_verf u.verf @@ -304,6 +306,7 @@ struct nfsd4_setattr { u32 sa_bmval[2]; /* request */ struct iattr sa_iattr; /* request */ struct nfs4_acl *sa_acl; + struct nfs4_label *sa_label; }; struct nfsd4_setclientid { -- 1.5.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html