aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r--fs/nfs/inode.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index c1c7a9d78722..07fcf0b90669 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -257,6 +257,34 @@ nfs_init_locked(struct inode *inode, void *opaque)
257 return 0; 257 return 0;
258} 258}
259 259
260#ifdef CONFIG_NFS_V4_SECURITY_LABEL
261struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags)
262{
263 struct nfs4_label *label = NULL;
264 int minor_version = server->nfs_client->cl_minorversion;
265
266 if (minor_version < 2)
267 return label;
268
269 if (!(server->caps & NFS_CAP_SECURITY_LABEL))
270 return label;
271
272 label = kzalloc(sizeof(struct nfs4_label), flags);
273 if (label == NULL)
274 return ERR_PTR(-ENOMEM);
275
276 label->label = kzalloc(NFS4_MAXLABELLEN, flags);
277 if (label->label == NULL) {
278 kfree(label);
279 return ERR_PTR(-ENOMEM);
280 }
281 label->len = NFS4_MAXLABELLEN;
282
283 return label;
284}
285EXPORT_SYMBOL_GPL(nfs4_label_alloc);
286#endif
287
260/* 288/*
261 * This is our front-end to iget that looks up inodes by file handle 289 * This is our front-end to iget that looks up inodes by file handle
262 * instead of inode number. 290 * instead of inode number.