History

NFSv4.2: add client side XDR handling for extended attributes

Define the argument and response structures that will be used for RFC 8276 extended attribute RPC calls, and implement the necessary functions to encode/decode the extended attribute operations.

Frank van der Linden committed 6 years ago

Commit 3e1f0211 parent b78ef843 files · +430 −3Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/nfs_xdr.h+58−1
@@ -1498,7 +1498,64 @@ struct nfs42_seek_res { · 1497 unmodified lines
14981498 u32 sr_eof;
14991499 u64 sr_offset;
15001500 };
1501−#endif
1501+
1502+struct nfs42_setxattrargs {
1503+ struct nfs4_sequence_args seq_args;
1504+ struct nfs_fh *fh;
1505+ const char *xattr_name;
1506+ u32 xattr_flags;
1507+ size_t xattr_len;
1508+ struct page **xattr_pages;
1509+};
1510+
1511+struct nfs42_setxattrres {
1512+ struct nfs4_sequence_res seq_res;
1513+ struct nfs4_change_info cinfo;
1514+};
1515+
1516+struct nfs42_getxattrargs {
1517+ struct nfs4_sequence_args seq_args;
1518+ struct nfs_fh *fh;
1519+ const char *xattr_name;
1520+ size_t xattr_len;
1521+ struct page **xattr_pages;
1522+};
1523+
1524+struct nfs42_getxattrres {
1525+ struct nfs4_sequence_res seq_res;
1526+ size_t xattr_len;
1527+};
1528+
1529+struct nfs42_listxattrsargs {
1530+ struct nfs4_sequence_args seq_args;
1531+ struct nfs_fh *fh;
1532+ u32 count;
1533+ u64 cookie;
1534+ struct page **xattr_pages;
1535+};
1536+
1537+struct nfs42_listxattrsres {
1538+ struct nfs4_sequence_res seq_res;
1539+ struct page *scratch;
1540+ void *xattr_buf;
1541+ size_t xattr_len;
1542+ u64 cookie;
1543+ bool eof;
1544+ size_t copied;
1545+};
1546+
1547+struct nfs42_removexattrargs {
1548+ struct nfs4_sequence_args seq_args;
1549+ struct nfs_fh *fh;
1550+ const char *xattr_name;
1551+};
1552+
1553+struct nfs42_removexattrres {
1554+ struct nfs4_sequence_res seq_res;
1555+ struct nfs4_change_info cinfo;
1556+};
1557+
1558+#endif /* CONFIG_NFS_V4_2 */
15021559
15031560 struct nfs_page;
15041561