Merge branch 'labeled-nfs' into linux-next
* labeled-nfs: NFS: Apply v4.1 capabilities to v4.2 NFS: Add in v4.2 callback operation NFS: Make callbacks minor version generic Kconfig: Add Kconfig entry for Labeled NFS V4 client NFS: Extend NFS xattr handlers to accept the security namespace NFS: Client implementation of Labeled-NFS NFS: Add label lifecycle management NFS:Add labels to client function prototypes NFSv4: Extend fattr bitmaps to support all 3 words NFSv4: Introduce new label structure NFSv4: Add label recommended attribute and NFSv4 flags NFSv4.2: Added NFS v4.2 support to the NFS client SELinux: Add new labeling type native labels LSM: Add flags field to security_sb_set_mnt_opts for in kernel mount data. Security: Add Hook to test if the particular xattr is part of a MAC model. Security: Add hook to calculate context based on a negative dentry. NFS: Add NFSv4.2 protocol constants Conflicts: fs/nfs/nfs4proc.c
This commit is contained in:
@@ -269,7 +269,7 @@ static match_table_t nfs_local_lock_tokens = {
|
||||
|
||||
enum {
|
||||
Opt_vers_2, Opt_vers_3, Opt_vers_4, Opt_vers_4_0,
|
||||
Opt_vers_4_1,
|
||||
Opt_vers_4_1, Opt_vers_4_2,
|
||||
|
||||
Opt_vers_err
|
||||
};
|
||||
@@ -280,6 +280,7 @@ static match_table_t nfs_vers_tokens = {
|
||||
{ Opt_vers_4, "4" },
|
||||
{ Opt_vers_4_0, "4.0" },
|
||||
{ Opt_vers_4_1, "4.1" },
|
||||
{ Opt_vers_4_2, "4.2" },
|
||||
|
||||
{ Opt_vers_err, NULL }
|
||||
};
|
||||
@@ -832,6 +833,7 @@ int nfs_show_stats(struct seq_file *m, struct dentry *root)
|
||||
seq_printf(m, "\n\tnfsv4:\t");
|
||||
seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]);
|
||||
seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]);
|
||||
seq_printf(m, ",bm2=0x%x", nfss->attr_bitmask[2]);
|
||||
seq_printf(m, ",acl=0x%x", nfss->acl_bitmask);
|
||||
show_sessions(m, nfss);
|
||||
show_pnfs(m, nfss);
|
||||
@@ -1097,6 +1099,10 @@ static int nfs_parse_version_string(char *string,
|
||||
mnt->version = 4;
|
||||
mnt->minorversion = 1;
|
||||
break;
|
||||
case Opt_vers_4_2:
|
||||
mnt->version = 4;
|
||||
mnt->minorversion = 2;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@@ -2423,7 +2429,21 @@ static int nfs_bdi_register(struct nfs_server *server)
|
||||
int nfs_set_sb_security(struct super_block *s, struct dentry *mntroot,
|
||||
struct nfs_mount_info *mount_info)
|
||||
{
|
||||
return security_sb_set_mnt_opts(s, &mount_info->parsed->lsm_opts);
|
||||
int error;
|
||||
unsigned long kflags = 0, kflags_out = 0;
|
||||
if (NFS_SB(s)->caps & NFS_CAP_SECURITY_LABEL)
|
||||
kflags |= SECURITY_LSM_NATIVE_LABELS;
|
||||
|
||||
error = security_sb_set_mnt_opts(s, &mount_info->parsed->lsm_opts,
|
||||
kflags, &kflags_out);
|
||||
if (error)
|
||||
goto err;
|
||||
|
||||
if (NFS_SB(s)->caps & NFS_CAP_SECURITY_LABEL &&
|
||||
!(kflags_out & SECURITY_LSM_NATIVE_LABELS))
|
||||
NFS_SB(s)->caps &= ~NFS_CAP_SECURITY_LABEL;
|
||||
err:
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nfs_set_sb_security);
|
||||
|
||||
|
Reference in New Issue
Block a user