.. | .. |
---|
15 | 15 | #define NFS_DEF_FILE_IO_SIZE (4096U) |
---|
16 | 16 | #define NFS_MIN_FILE_IO_SIZE (1024U) |
---|
17 | 17 | |
---|
| 18 | +#define NFS_BITMASK_SZ 3 |
---|
| 19 | + |
---|
18 | 20 | struct nfs4_string { |
---|
19 | 21 | unsigned int len; |
---|
20 | 22 | char *data; |
---|
.. | .. |
---|
62 | 64 | struct nfs_fsid fsid; |
---|
63 | 65 | __u64 fileid; |
---|
64 | 66 | __u64 mounted_on_fileid; |
---|
65 | | - struct timespec atime; |
---|
66 | | - struct timespec mtime; |
---|
67 | | - struct timespec ctime; |
---|
| 67 | + struct timespec64 atime; |
---|
| 68 | + struct timespec64 mtime; |
---|
| 69 | + struct timespec64 ctime; |
---|
68 | 70 | __u64 change_attr; /* NFSv4 change attribute */ |
---|
69 | 71 | __u64 pre_change_attr;/* pre-op NFSv4 change attribute */ |
---|
70 | 72 | __u64 pre_size; /* pre_op_attr.size */ |
---|
71 | | - struct timespec pre_mtime; /* pre_op_attr.mtime */ |
---|
72 | | - struct timespec pre_ctime; /* pre_op_attr.ctime */ |
---|
| 73 | + struct timespec64 pre_mtime; /* pre_op_attr.mtime */ |
---|
| 74 | + struct timespec64 pre_ctime; /* pre_op_attr.ctime */ |
---|
73 | 75 | unsigned long time_start; |
---|
74 | 76 | unsigned long gencount; |
---|
75 | 77 | struct nfs4_string *owner_name; |
---|
76 | 78 | struct nfs4_string *group_name; |
---|
77 | 79 | struct nfs4_threshold *mdsthreshold; /* pNFS threshold hints */ |
---|
| 80 | + struct nfs4_label *label; |
---|
78 | 81 | }; |
---|
79 | 82 | |
---|
80 | 83 | #define NFS_ATTR_FATTR_TYPE (1U << 0) |
---|
.. | .. |
---|
143 | 146 | __u32 wtmult; /* writes should be multiple of this */ |
---|
144 | 147 | __u32 dtpref; /* pref. readdir transfer size */ |
---|
145 | 148 | __u64 maxfilesize; |
---|
146 | | - struct timespec time_delta; /* server time granularity */ |
---|
| 149 | + struct timespec64 time_delta; /* server time granularity */ |
---|
147 | 150 | __u32 lease_time; /* in seconds */ |
---|
148 | 151 | __u32 nlayouttypes; /* number of layouttypes */ |
---|
149 | 152 | __u32 layouttype[NFS_MAX_LAYOUT_TYPES]; /* supported pnfs layout driver */ |
---|
150 | 153 | __u32 blksize; /* preferred pnfs io block size */ |
---|
151 | 154 | __u32 clone_blksize; /* granularity of a CLONE operation */ |
---|
| 155 | + __u32 xattr_support; /* User xattrs supported */ |
---|
152 | 156 | }; |
---|
153 | 157 | |
---|
154 | 158 | struct nfs_fsstat { |
---|
.. | .. |
---|
270 | 274 | struct nfs4_layoutget { |
---|
271 | 275 | struct nfs4_layoutget_args args; |
---|
272 | 276 | struct nfs4_layoutget_res res; |
---|
273 | | - struct rpc_cred *cred; |
---|
| 277 | + const struct cred *cred; |
---|
274 | 278 | gfp_t gfp_flags; |
---|
275 | 279 | }; |
---|
276 | 280 | |
---|
.. | .. |
---|
309 | 313 | struct rpc_task task; |
---|
310 | 314 | struct nfs_fattr fattr; |
---|
311 | 315 | struct list_head lseg_list; |
---|
312 | | - struct rpc_cred *cred; |
---|
| 316 | + const struct cred *cred; |
---|
313 | 317 | struct inode *inode; |
---|
314 | 318 | struct nfs4_layoutcommit_args args; |
---|
315 | 319 | struct nfs4_layoutcommit_res res; |
---|
.. | .. |
---|
334 | 338 | struct nfs4_layoutreturn { |
---|
335 | 339 | struct nfs4_layoutreturn_args args; |
---|
336 | 340 | struct nfs4_layoutreturn_res res; |
---|
337 | | - struct rpc_cred *cred; |
---|
| 341 | + const struct cred *cred; |
---|
338 | 342 | struct nfs_client *clp; |
---|
339 | 343 | struct inode *inode; |
---|
340 | 344 | int rpc_status; |
---|
.. | .. |
---|
381 | 385 | struct inode *inode; |
---|
382 | 386 | struct nfs42_layoutstat_args args; |
---|
383 | 387 | struct nfs42_layoutstat_res res; |
---|
| 388 | +}; |
---|
| 389 | + |
---|
| 390 | +struct nfs42_device_error { |
---|
| 391 | + struct nfs4_deviceid dev_id; |
---|
| 392 | + int status; |
---|
| 393 | + enum nfs_opnum4 opnum; |
---|
| 394 | +}; |
---|
| 395 | + |
---|
| 396 | +struct nfs42_layout_error { |
---|
| 397 | + __u64 offset; |
---|
| 398 | + __u64 length; |
---|
| 399 | + nfs4_stateid stateid; |
---|
| 400 | + struct nfs42_device_error errors[1]; |
---|
| 401 | +}; |
---|
| 402 | + |
---|
| 403 | +#define NFS42_LAYOUTERROR_MAX 5 |
---|
| 404 | + |
---|
| 405 | +struct nfs42_layouterror_args { |
---|
| 406 | + struct nfs4_sequence_args seq_args; |
---|
| 407 | + struct inode *inode; |
---|
| 408 | + unsigned int num_errors; |
---|
| 409 | + struct nfs42_layout_error errors[NFS42_LAYOUTERROR_MAX]; |
---|
| 410 | +}; |
---|
| 411 | + |
---|
| 412 | +struct nfs42_layouterror_res { |
---|
| 413 | + struct nfs4_sequence_res seq_res; |
---|
| 414 | + unsigned int num_errors; |
---|
| 415 | + int rpc_status; |
---|
| 416 | +}; |
---|
| 417 | + |
---|
| 418 | +struct nfs42_layouterror_data { |
---|
| 419 | + struct nfs42_layouterror_args args; |
---|
| 420 | + struct nfs42_layouterror_res res; |
---|
| 421 | + struct inode *inode; |
---|
| 422 | + struct pnfs_layout_segment *lseg; |
---|
384 | 423 | }; |
---|
385 | 424 | |
---|
386 | 425 | struct nfs42_clone_args { |
---|
.. | .. |
---|
489 | 528 | fmode_t fmode; |
---|
490 | 529 | u32 share_access; |
---|
491 | 530 | const u32 * bitmask; |
---|
| 531 | + u32 bitmask_store[NFS_BITMASK_SZ]; |
---|
492 | 532 | struct nfs4_layoutreturn_args *lr_args; |
---|
493 | 533 | }; |
---|
494 | 534 | |
---|
.. | .. |
---|
571 | 611 | struct nfs4_sequence_args seq_args; |
---|
572 | 612 | const struct nfs_fh *fhandle; |
---|
573 | 613 | const nfs4_stateid *stateid; |
---|
574 | | - const u32 * bitmask; |
---|
| 614 | + const u32 *bitmask; |
---|
| 615 | + u32 bitmask_store[NFS_BITMASK_SZ]; |
---|
575 | 616 | struct nfs4_layoutreturn_args *lr_args; |
---|
576 | 617 | }; |
---|
577 | 618 | |
---|
.. | .. |
---|
608 | 649 | __u32 count; |
---|
609 | 650 | unsigned int pgbase; |
---|
610 | 651 | struct page ** pages; |
---|
611 | | - const u32 * bitmask; /* used by write */ |
---|
612 | | - enum nfs3_stable_how stable; /* used by write */ |
---|
| 652 | + union { |
---|
| 653 | + unsigned int replen; /* used by read */ |
---|
| 654 | + struct { |
---|
| 655 | + const u32 * bitmask; /* used by write */ |
---|
| 656 | + u32 bitmask_store[NFS_BITMASK_SZ]; /* used by write */ |
---|
| 657 | + enum nfs3_stable_how stable; /* used by write */ |
---|
| 658 | + }; |
---|
| 659 | + }; |
---|
613 | 660 | }; |
---|
614 | 661 | |
---|
615 | 662 | struct nfs_pgio_res { |
---|
616 | 663 | struct nfs4_sequence_res seq_res; |
---|
617 | 664 | struct nfs_fattr * fattr; |
---|
618 | | - __u32 count; |
---|
| 665 | + __u64 count; |
---|
619 | 666 | __u32 op_status; |
---|
620 | | - int eof; /* used by read */ |
---|
621 | | - struct nfs_writeverf * verf; /* used by write */ |
---|
622 | | - const struct nfs_server *server; /* used by write */ |
---|
623 | | - |
---|
| 667 | + union { |
---|
| 668 | + struct { |
---|
| 669 | + unsigned int replen; /* used by read */ |
---|
| 670 | + int eof; /* used by read */ |
---|
| 671 | + }; |
---|
| 672 | + struct { |
---|
| 673 | + struct nfs_writeverf * verf; /* used by write */ |
---|
| 674 | + const struct nfs_server *server; /* used by write */ |
---|
| 675 | + }; |
---|
| 676 | + }; |
---|
624 | 677 | }; |
---|
625 | 678 | |
---|
626 | 679 | /* |
---|
.. | .. |
---|
823 | 876 | struct nfs_fh * fh; |
---|
824 | 877 | struct iattr * sattr; |
---|
825 | 878 | unsigned int guard; |
---|
826 | | - struct timespec guardtime; |
---|
| 879 | + struct timespec64 guardtime; |
---|
827 | 880 | }; |
---|
828 | 881 | |
---|
829 | 882 | struct nfs3_diropargs { |
---|
.. | .. |
---|
1180 | 1233 | |
---|
1181 | 1234 | struct nfs4_secinfo_flavors { |
---|
1182 | 1235 | unsigned int num_flavors; |
---|
1183 | | - struct nfs4_secinfo4 flavors[0]; |
---|
| 1236 | + struct nfs4_secinfo4 flavors[]; |
---|
1184 | 1237 | }; |
---|
1185 | 1238 | |
---|
1186 | 1239 | struct nfs4_secinfo_arg { |
---|
.. | .. |
---|
1219 | 1272 | struct pnfs_commit_bucket { |
---|
1220 | 1273 | struct list_head written; |
---|
1221 | 1274 | struct list_head committing; |
---|
1222 | | - struct pnfs_layout_segment *wlseg; |
---|
1223 | | - struct pnfs_layout_segment *clseg; |
---|
| 1275 | + struct pnfs_layout_segment *lseg; |
---|
1224 | 1276 | struct nfs_writeverf direct_verf; |
---|
1225 | 1277 | }; |
---|
1226 | 1278 | |
---|
| 1279 | +struct pnfs_commit_array { |
---|
| 1280 | + struct list_head cinfo_list; |
---|
| 1281 | + struct list_head lseg_list; |
---|
| 1282 | + struct pnfs_layout_segment *lseg; |
---|
| 1283 | + struct rcu_head rcu; |
---|
| 1284 | + refcount_t refcount; |
---|
| 1285 | + unsigned int nbuckets; |
---|
| 1286 | + struct pnfs_commit_bucket buckets[]; |
---|
| 1287 | +}; |
---|
| 1288 | + |
---|
1227 | 1289 | struct pnfs_ds_commit_info { |
---|
1228 | | - int nwritten; |
---|
1229 | | - int ncommitting; |
---|
1230 | | - int nbuckets; |
---|
1231 | | - struct pnfs_commit_bucket *buckets; |
---|
| 1290 | + struct list_head commits; |
---|
| 1291 | + unsigned int nwritten; |
---|
| 1292 | + unsigned int ncommitting; |
---|
| 1293 | + const struct pnfs_commit_ops *ops; |
---|
1232 | 1294 | }; |
---|
1233 | 1295 | |
---|
1234 | 1296 | struct nfs41_state_protection { |
---|
.. | .. |
---|
1261 | 1323 | struct nfstime4 date; |
---|
1262 | 1324 | }; |
---|
1263 | 1325 | |
---|
| 1326 | +#define MAX_BIND_CONN_TO_SESSION_RETRIES 3 |
---|
1264 | 1327 | struct nfs41_bind_conn_to_session_args { |
---|
1265 | 1328 | struct nfs_client *client; |
---|
1266 | 1329 | struct nfs4_sessionid sessionid; |
---|
1267 | 1330 | u32 dir; |
---|
1268 | 1331 | bool use_conn_in_rdma_mode; |
---|
| 1332 | + int retries; |
---|
1269 | 1333 | }; |
---|
1270 | 1334 | |
---|
1271 | 1335 | struct nfs41_bind_conn_to_session_res { |
---|
.. | .. |
---|
1339 | 1403 | unsigned int status; |
---|
1340 | 1404 | }; |
---|
1341 | 1405 | |
---|
1342 | | -static inline void |
---|
1343 | | -nfs_free_pnfs_ds_cinfo(struct pnfs_ds_commit_info *cinfo) |
---|
1344 | | -{ |
---|
1345 | | - kfree(cinfo->buckets); |
---|
1346 | | -} |
---|
1347 | | - |
---|
1348 | 1406 | #else |
---|
1349 | 1407 | |
---|
1350 | 1408 | struct pnfs_ds_commit_info { |
---|
1351 | 1409 | }; |
---|
1352 | | - |
---|
1353 | | -static inline void |
---|
1354 | | -nfs_free_pnfs_ds_cinfo(struct pnfs_ds_commit_info *cinfo) |
---|
1355 | | -{ |
---|
1356 | | -} |
---|
1357 | 1410 | |
---|
1358 | 1411 | #endif /* CONFIG_NFS_V4_1 */ |
---|
1359 | 1412 | |
---|
.. | .. |
---|
1389 | 1442 | |
---|
1390 | 1443 | u64 count; |
---|
1391 | 1444 | bool sync; |
---|
| 1445 | + struct nl4_server *cp_src; |
---|
1392 | 1446 | }; |
---|
1393 | 1447 | |
---|
1394 | 1448 | struct nfs42_write_res { |
---|
.. | .. |
---|
1417 | 1471 | int osr_status; |
---|
1418 | 1472 | }; |
---|
1419 | 1473 | |
---|
| 1474 | +struct nfs42_copy_notify_args { |
---|
| 1475 | + struct nfs4_sequence_args cna_seq_args; |
---|
| 1476 | + |
---|
| 1477 | + struct nfs_fh *cna_src_fh; |
---|
| 1478 | + nfs4_stateid cna_src_stateid; |
---|
| 1479 | + struct nl4_server cna_dst; |
---|
| 1480 | +}; |
---|
| 1481 | + |
---|
| 1482 | +struct nfs42_copy_notify_res { |
---|
| 1483 | + struct nfs4_sequence_res cnr_seq_res; |
---|
| 1484 | + |
---|
| 1485 | + struct nfstime4 cnr_lease_time; |
---|
| 1486 | + nfs4_stateid cnr_stateid; |
---|
| 1487 | + struct nl4_server cnr_src; |
---|
| 1488 | +}; |
---|
| 1489 | + |
---|
1420 | 1490 | struct nfs42_seek_args { |
---|
1421 | 1491 | struct nfs4_sequence_args seq_args; |
---|
1422 | 1492 | |
---|
.. | .. |
---|
1433 | 1503 | u32 sr_eof; |
---|
1434 | 1504 | u64 sr_offset; |
---|
1435 | 1505 | }; |
---|
1436 | | -#endif |
---|
| 1506 | + |
---|
| 1507 | +struct nfs42_setxattrargs { |
---|
| 1508 | + struct nfs4_sequence_args seq_args; |
---|
| 1509 | + struct nfs_fh *fh; |
---|
| 1510 | + const char *xattr_name; |
---|
| 1511 | + u32 xattr_flags; |
---|
| 1512 | + size_t xattr_len; |
---|
| 1513 | + struct page **xattr_pages; |
---|
| 1514 | +}; |
---|
| 1515 | + |
---|
| 1516 | +struct nfs42_setxattrres { |
---|
| 1517 | + struct nfs4_sequence_res seq_res; |
---|
| 1518 | + struct nfs4_change_info cinfo; |
---|
| 1519 | +}; |
---|
| 1520 | + |
---|
| 1521 | +struct nfs42_getxattrargs { |
---|
| 1522 | + struct nfs4_sequence_args seq_args; |
---|
| 1523 | + struct nfs_fh *fh; |
---|
| 1524 | + const char *xattr_name; |
---|
| 1525 | + size_t xattr_len; |
---|
| 1526 | + struct page **xattr_pages; |
---|
| 1527 | +}; |
---|
| 1528 | + |
---|
| 1529 | +struct nfs42_getxattrres { |
---|
| 1530 | + struct nfs4_sequence_res seq_res; |
---|
| 1531 | + size_t xattr_len; |
---|
| 1532 | +}; |
---|
| 1533 | + |
---|
| 1534 | +struct nfs42_listxattrsargs { |
---|
| 1535 | + struct nfs4_sequence_args seq_args; |
---|
| 1536 | + struct nfs_fh *fh; |
---|
| 1537 | + u32 count; |
---|
| 1538 | + u64 cookie; |
---|
| 1539 | + struct page **xattr_pages; |
---|
| 1540 | +}; |
---|
| 1541 | + |
---|
| 1542 | +struct nfs42_listxattrsres { |
---|
| 1543 | + struct nfs4_sequence_res seq_res; |
---|
| 1544 | + struct page *scratch; |
---|
| 1545 | + void *xattr_buf; |
---|
| 1546 | + size_t xattr_len; |
---|
| 1547 | + u64 cookie; |
---|
| 1548 | + bool eof; |
---|
| 1549 | + size_t copied; |
---|
| 1550 | +}; |
---|
| 1551 | + |
---|
| 1552 | +struct nfs42_removexattrargs { |
---|
| 1553 | + struct nfs4_sequence_args seq_args; |
---|
| 1554 | + struct nfs_fh *fh; |
---|
| 1555 | + const char *xattr_name; |
---|
| 1556 | +}; |
---|
| 1557 | + |
---|
| 1558 | +struct nfs42_removexattrres { |
---|
| 1559 | + struct nfs4_sequence_res seq_res; |
---|
| 1560 | + struct nfs4_change_info cinfo; |
---|
| 1561 | +}; |
---|
| 1562 | + |
---|
| 1563 | +#endif /* CONFIG_NFS_V4_2 */ |
---|
1437 | 1564 | |
---|
1438 | 1565 | struct nfs_page; |
---|
1439 | 1566 | |
---|
.. | .. |
---|
1458 | 1585 | struct nfs_io_completion; |
---|
1459 | 1586 | struct nfs_pgio_header { |
---|
1460 | 1587 | struct inode *inode; |
---|
1461 | | - struct rpc_cred *cred; |
---|
| 1588 | + const struct cred *cred; |
---|
1462 | 1589 | struct list_head pages; |
---|
1463 | 1590 | struct nfs_page *req; |
---|
1464 | 1591 | struct nfs_writeverf verf; /* Used for writes */ |
---|
.. | .. |
---|
1471 | 1598 | const struct nfs_rw_ops *rw_ops; |
---|
1472 | 1599 | struct nfs_io_completion *io_completion; |
---|
1473 | 1600 | struct nfs_direct_req *dreq; |
---|
1474 | | - spinlock_t lock; |
---|
1475 | | - /* fields protected by lock */ |
---|
| 1601 | + |
---|
1476 | 1602 | int pnfs_error; |
---|
1477 | 1603 | int error; /* merge with pnfs_error */ |
---|
1478 | | - unsigned long good_bytes; /* boundary of good data */ |
---|
| 1604 | + unsigned int good_bytes; /* boundary of good data */ |
---|
1479 | 1605 | unsigned long flags; |
---|
1480 | 1606 | |
---|
1481 | 1607 | /* |
---|
.. | .. |
---|
1490 | 1616 | __u64 mds_offset; /* Filelayout dense stripe */ |
---|
1491 | 1617 | struct nfs_page_array page_array; |
---|
1492 | 1618 | struct nfs_client *ds_clp; /* pNFS data server */ |
---|
1493 | | - int ds_commit_idx; /* ds index if ds_clp is set */ |
---|
1494 | | - int pgio_mirror_idx;/* mirror index in pgio layer */ |
---|
| 1619 | + u32 ds_commit_idx; /* ds index if ds_clp is set */ |
---|
| 1620 | + u32 pgio_mirror_idx;/* mirror index in pgio layer */ |
---|
1495 | 1621 | }; |
---|
1496 | 1622 | |
---|
1497 | 1623 | struct nfs_mds_commit_info { |
---|
.. | .. |
---|
1519 | 1645 | struct nfs_commit_data { |
---|
1520 | 1646 | struct rpc_task task; |
---|
1521 | 1647 | struct inode *inode; |
---|
1522 | | - struct rpc_cred *cred; |
---|
| 1648 | + const struct cred *cred; |
---|
1523 | 1649 | struct nfs_fattr fattr; |
---|
1524 | 1650 | struct nfs_writeverf verf; |
---|
1525 | 1651 | struct list_head pages; /* Coalesced requests we wish to flush */ |
---|
.. | .. |
---|
1549 | 1675 | struct nfs_removeargs args; |
---|
1550 | 1676 | struct nfs_removeres res; |
---|
1551 | 1677 | struct dentry *dentry; |
---|
1552 | | - struct swait_queue_head wq; |
---|
1553 | | - struct rpc_cred *cred; |
---|
| 1678 | + wait_queue_head_t wq; |
---|
| 1679 | + const struct cred *cred; |
---|
1554 | 1680 | struct nfs_fattr dir_attr; |
---|
1555 | 1681 | long timeout; |
---|
1556 | 1682 | }; |
---|
.. | .. |
---|
1558 | 1684 | struct nfs_renamedata { |
---|
1559 | 1685 | struct nfs_renameargs args; |
---|
1560 | 1686 | struct nfs_renameres res; |
---|
1561 | | - struct rpc_cred *cred; |
---|
| 1687 | + const struct cred *cred; |
---|
1562 | 1688 | struct inode *old_dir; |
---|
1563 | 1689 | struct dentry *old_dentry; |
---|
1564 | 1690 | struct nfs_fattr old_fattr; |
---|
.. | .. |
---|
1577 | 1703 | struct nfs_mount_info; |
---|
1578 | 1704 | struct nfs_client_initdata; |
---|
1579 | 1705 | struct nfs_pageio_descriptor; |
---|
| 1706 | +struct fs_context; |
---|
1580 | 1707 | |
---|
1581 | 1708 | /* |
---|
1582 | 1709 | * RPC procedure vector for NFSv2/NFSv3 demuxing |
---|
.. | .. |
---|
1591 | 1718 | |
---|
1592 | 1719 | int (*getroot) (struct nfs_server *, struct nfs_fh *, |
---|
1593 | 1720 | struct nfs_fsinfo *); |
---|
1594 | | - struct vfsmount *(*submount) (struct nfs_server *, struct dentry *, |
---|
1595 | | - struct nfs_fh *, struct nfs_fattr *); |
---|
1596 | | - struct dentry *(*try_mount) (int, const char *, struct nfs_mount_info *, |
---|
1597 | | - struct nfs_subversion *); |
---|
| 1721 | + int (*submount) (struct fs_context *, struct nfs_server *); |
---|
| 1722 | + int (*try_get_tree) (struct fs_context *); |
---|
1598 | 1723 | int (*getattr) (struct nfs_server *, struct nfs_fh *, |
---|
1599 | 1724 | struct nfs_fattr *, struct nfs4_label *, |
---|
1600 | 1725 | struct inode *); |
---|
1601 | 1726 | int (*setattr) (struct dentry *, struct nfs_fattr *, |
---|
1602 | 1727 | struct iattr *); |
---|
1603 | | - int (*lookup) (struct inode *, const struct qstr *, |
---|
| 1728 | + int (*lookup) (struct inode *, struct dentry *, |
---|
1604 | 1729 | struct nfs_fh *, struct nfs_fattr *, |
---|
1605 | 1730 | struct nfs4_label *); |
---|
1606 | 1731 | int (*lookupp) (struct inode *, struct nfs_fh *, |
---|
.. | .. |
---|
1624 | 1749 | unsigned int, struct iattr *); |
---|
1625 | 1750 | int (*mkdir) (struct inode *, struct dentry *, struct iattr *); |
---|
1626 | 1751 | int (*rmdir) (struct inode *, const struct qstr *); |
---|
1627 | | - int (*readdir) (struct dentry *, struct rpc_cred *, |
---|
| 1752 | + int (*readdir) (struct dentry *, const struct cred *, |
---|
1628 | 1753 | u64, struct page **, unsigned int, bool); |
---|
1629 | 1754 | int (*mknod) (struct inode *, struct dentry *, struct iattr *, |
---|
1630 | 1755 | dev_t); |
---|
.. | .. |
---|
1661 | 1786 | struct nfs_client *(*init_client) (struct nfs_client *, |
---|
1662 | 1787 | const struct nfs_client_initdata *); |
---|
1663 | 1788 | void (*free_client) (struct nfs_client *); |
---|
1664 | | - struct nfs_server *(*create_server)(struct nfs_mount_info *, struct nfs_subversion *); |
---|
| 1789 | + struct nfs_server *(*create_server)(struct fs_context *); |
---|
1665 | 1790 | struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *, |
---|
1666 | 1791 | struct nfs_fattr *, rpc_authflavor_t); |
---|
1667 | 1792 | }; |
---|