export.c (07f9479a40cc778bc1462ada11f95b01360ae4ff) | export.c (68d93184352f2e723f135b0a9bad93b58f9d120b) |
---|---|
1/* 2 * NFS exporting and validation. 3 * 4 * We maintain a list of clients, each of which has a list of 5 * exports. To export an fs to a given client, you first have 6 * to create the client entry with NFSCTL_ADDCLIENT, which 7 * creates a client control block and adds it to the hash 8 * table. Then, you call NFSCTL_EXPORT for each fs. --- 1340 unchanged lines hidden (view full) --- 1349{ 1350 struct svc_export *exp; 1351 __be32 rv; 1352 1353 exp = find_fsidzero_export(rqstp); 1354 if (IS_ERR(exp)) 1355 return nfserrno(PTR_ERR(exp)); 1356 rv = fh_compose(fhp, exp, exp->ex_path.dentry, NULL); | 1/* 2 * NFS exporting and validation. 3 * 4 * We maintain a list of clients, each of which has a list of 5 * exports. To export an fs to a given client, you first have 6 * to create the client entry with NFSCTL_ADDCLIENT, which 7 * creates a client control block and adds it to the hash 8 * table. Then, you call NFSCTL_EXPORT for each fs. --- 1340 unchanged lines hidden (view full) --- 1349{ 1350 struct svc_export *exp; 1351 __be32 rv; 1352 1353 exp = find_fsidzero_export(rqstp); 1354 if (IS_ERR(exp)) 1355 return nfserrno(PTR_ERR(exp)); 1356 rv = fh_compose(fhp, exp, exp->ex_path.dentry, NULL); |
1357 if (rv) 1358 goto out; 1359 rv = check_nfsd_access(exp, rqstp); 1360 if (rv) 1361 fh_put(fhp); 1362out: | |
1363 exp_put(exp); 1364 return rv; 1365} 1366 1367/* Iterator */ 1368 1369static void *e_start(struct seq_file *m, loff_t *pos) 1370 __acquires(svc_export_cache.hash_lock) --- 329 unchanged lines hidden --- | 1357 exp_put(exp); 1358 return rv; 1359} 1360 1361/* Iterator */ 1362 1363static void *e_start(struct seq_file *m, loff_t *pos) 1364 __acquires(svc_export_cache.hash_lock) --- 329 unchanged lines hidden --- |