Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
475d4ba0
Commit
475d4ba0
authored
Mar 05, 2012
by
Trond Myklebust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NFSv4: More xdr cleanups
Signed-off-by:
Trond Myklebust
<
Trond.Myklebust@netapp.com
>
parent
70019514
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
114 deletions
+50
-114
fs/nfs/nfs4xdr.c
fs/nfs/nfs4xdr.c
+50
-114
No files found.
fs/nfs/nfs4xdr.c
View file @
475d4ba0
...
@@ -1084,13 +1084,8 @@ static void encode_attrs(struct xdr_stream *xdr, const struct iattr *iap, const
...
@@ -1084,13 +1084,8 @@ static void encode_attrs(struct xdr_stream *xdr, const struct iattr *iap, const
static
void
encode_access
(
struct
xdr_stream
*
xdr
,
u32
access
,
struct
compound_hdr
*
hdr
)
static
void
encode_access
(
struct
xdr_stream
*
xdr
,
u32
access
,
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
encode_op_hdr
(
xdr
,
OP_ACCESS
,
decode_access_maxsz
,
hdr
);
encode_uint32
(
xdr
,
access
);
p
=
reserve_space
(
xdr
,
8
);
*
p
++
=
cpu_to_be32
(
OP_ACCESS
);
*
p
=
cpu_to_be32
(
access
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_access_maxsz
;
}
}
static
void
encode_close
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_closeargs
*
arg
,
struct
compound_hdr
*
hdr
)
static
void
encode_close
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_closeargs
*
arg
,
struct
compound_hdr
*
hdr
)
...
@@ -1104,21 +1099,18 @@ static void encode_commit(struct xdr_stream *xdr, const struct nfs_writeargs *ar
...
@@ -1104,21 +1099,18 @@ static void encode_commit(struct xdr_stream *xdr, const struct nfs_writeargs *ar
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
16
);
encode_op_hdr
(
xdr
,
OP_COMMIT
,
decode_commit_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_COMMIT
);
p
=
reserve_space
(
xdr
,
12
);
p
=
xdr_encode_hyper
(
p
,
args
->
offset
);
p
=
xdr_encode_hyper
(
p
,
args
->
offset
);
*
p
=
cpu_to_be32
(
args
->
count
);
*
p
=
cpu_to_be32
(
args
->
count
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_commit_maxsz
;
}
}
static
void
encode_create
(
struct
xdr_stream
*
xdr
,
const
struct
nfs4_create_arg
*
create
,
struct
compound_hdr
*
hdr
)
static
void
encode_create
(
struct
xdr_stream
*
xdr
,
const
struct
nfs4_create_arg
*
create
,
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
8
);
encode_op_hdr
(
xdr
,
OP_CREATE
,
decode_create_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_CREATE
);
encode_uint32
(
xdr
,
create
->
ftype
);
*
p
=
cpu_to_be32
(
create
->
ftype
);
switch
(
create
->
ftype
)
{
switch
(
create
->
ftype
)
{
case
NF4LNK
:
case
NF4LNK
:
...
@@ -1138,9 +1130,6 @@ static void encode_create(struct xdr_stream *xdr, const struct nfs4_create_arg *
...
@@ -1138,9 +1130,6 @@ static void encode_create(struct xdr_stream *xdr, const struct nfs4_create_arg *
}
}
encode_string
(
xdr
,
create
->
name
->
len
,
create
->
name
->
name
);
encode_string
(
xdr
,
create
->
name
->
len
,
create
->
name
->
name
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_create_maxsz
;
encode_attrs
(
xdr
,
create
->
attrs
,
create
->
server
);
encode_attrs
(
xdr
,
create
->
attrs
,
create
->
server
);
}
}
...
@@ -1148,25 +1137,21 @@ static void encode_getattr_one(struct xdr_stream *xdr, uint32_t bitmap, struct c
...
@@ -1148,25 +1137,21 @@ static void encode_getattr_one(struct xdr_stream *xdr, uint32_t bitmap, struct c
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
12
);
encode_op_hdr
(
xdr
,
OP_GETATTR
,
decode_getattr_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_GETATTR
);
p
=
reserve_space
(
xdr
,
8
);
*
p
++
=
cpu_to_be32
(
1
);
*
p
++
=
cpu_to_be32
(
1
);
*
p
=
cpu_to_be32
(
bitmap
);
*
p
=
cpu_to_be32
(
bitmap
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_getattr_maxsz
;
}
}
static
void
encode_getattr_two
(
struct
xdr_stream
*
xdr
,
uint32_t
bm0
,
uint32_t
bm1
,
struct
compound_hdr
*
hdr
)
static
void
encode_getattr_two
(
struct
xdr_stream
*
xdr
,
uint32_t
bm0
,
uint32_t
bm1
,
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
16
);
encode_op_hdr
(
xdr
,
OP_GETATTR
,
decode_getattr_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_GETATTR
);
p
=
reserve_space
(
xdr
,
12
);
*
p
++
=
cpu_to_be32
(
2
);
*
p
++
=
cpu_to_be32
(
2
);
*
p
++
=
cpu_to_be32
(
bm0
);
*
p
++
=
cpu_to_be32
(
bm0
);
*
p
=
cpu_to_be32
(
bm1
);
*
p
=
cpu_to_be32
(
bm1
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_getattr_maxsz
;
}
}
static
void
static
void
...
@@ -1261,8 +1246,8 @@ static void encode_lock(struct xdr_stream *xdr, const struct nfs_lock_args *args
...
@@ -1261,8 +1246,8 @@ static void encode_lock(struct xdr_stream *xdr, const struct nfs_lock_args *args
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
32
);
encode_op_hdr
(
xdr
,
OP_LOCK
,
decode_lock_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LOCK
);
p
=
reserve_space
(
xdr
,
28
);
*
p
++
=
cpu_to_be32
(
nfs4_lock_type
(
args
->
fl
,
args
->
block
));
*
p
++
=
cpu_to_be32
(
nfs4_lock_type
(
args
->
fl
,
args
->
block
));
*
p
++
=
cpu_to_be32
(
args
->
reclaim
);
*
p
++
=
cpu_to_be32
(
args
->
reclaim
);
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
...
@@ -1278,38 +1263,31 @@ static void encode_lock(struct xdr_stream *xdr, const struct nfs_lock_args *args
...
@@ -1278,38 +1263,31 @@ static void encode_lock(struct xdr_stream *xdr, const struct nfs_lock_args *args
encode_nfs4_stateid
(
xdr
,
args
->
lock_stateid
);
encode_nfs4_stateid
(
xdr
,
args
->
lock_stateid
);
encode_nfs4_seqid
(
xdr
,
args
->
lock_seqid
);
encode_nfs4_seqid
(
xdr
,
args
->
lock_seqid
);
}
}
hdr
->
nops
++
;
hdr
->
replen
+=
decode_lock_maxsz
;
}
}
static
void
encode_lockt
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_lockt_args
*
args
,
struct
compound_hdr
*
hdr
)
static
void
encode_lockt
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_lockt_args
*
args
,
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
24
);
encode_op_hdr
(
xdr
,
OP_LOCKT
,
decode_lockt_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LOCKT
);
p
=
reserve_space
(
xdr
,
20
);
*
p
++
=
cpu_to_be32
(
nfs4_lock_type
(
args
->
fl
,
0
));
*
p
++
=
cpu_to_be32
(
nfs4_lock_type
(
args
->
fl
,
0
));
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
p
=
xdr_encode_hyper
(
p
,
nfs4_lock_length
(
args
->
fl
));
p
=
xdr_encode_hyper
(
p
,
nfs4_lock_length
(
args
->
fl
));
encode_lockowner
(
xdr
,
&
args
->
lock_owner
);
encode_lockowner
(
xdr
,
&
args
->
lock_owner
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_lockt_maxsz
;
}
}
static
void
encode_locku
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_locku_args
*
args
,
struct
compound_hdr
*
hdr
)
static
void
encode_locku
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_locku_args
*
args
,
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
8
);
encode_op_hdr
(
xdr
,
OP_LOCKU
,
decode_locku_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LOCKU
);
encode_uint32
(
xdr
,
nfs4_lock_type
(
args
->
fl
,
0
));
*
p
=
cpu_to_be32
(
nfs4_lock_type
(
args
->
fl
,
0
));
encode_nfs4_seqid
(
xdr
,
args
->
seqid
);
encode_nfs4_seqid
(
xdr
,
args
->
seqid
);
encode_nfs4_stateid
(
xdr
,
args
->
stateid
);
encode_nfs4_stateid
(
xdr
,
args
->
stateid
);
p
=
reserve_space
(
xdr
,
16
);
p
=
reserve_space
(
xdr
,
16
);
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
p
=
xdr_encode_hyper
(
p
,
args
->
fl
->
fl_start
);
xdr_encode_hyper
(
p
,
nfs4_lock_length
(
args
->
fl
));
xdr_encode_hyper
(
p
,
nfs4_lock_length
(
args
->
fl
));
hdr
->
nops
++
;
hdr
->
replen
+=
decode_locku_maxsz
;
}
}
static
void
encode_release_lockowner
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_lowner
*
lowner
,
struct
compound_hdr
*
hdr
)
static
void
encode_release_lockowner
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_lowner
*
lowner
,
struct
compound_hdr
*
hdr
)
...
@@ -1553,8 +1531,8 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
...
@@ -1553,8 +1531,8 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
if
(
!
(
readdir
->
bitmask
[
1
]
&
FATTR4_WORD1_MOUNTED_ON_FILEID
))
if
(
!
(
readdir
->
bitmask
[
1
]
&
FATTR4_WORD1_MOUNTED_ON_FILEID
))
attrs
[
0
]
|=
FATTR4_WORD0_FILEID
;
attrs
[
0
]
|=
FATTR4_WORD0_FILEID
;
p
=
reserve_space
(
xdr
,
12
);
encode_op_hdr
(
xdr
,
OP_READDIR
,
decode_readdir_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_READDIR
);
p
=
reserve_space
(
xdr
,
8
);
p
=
xdr_encode_hyper
(
p
,
readdir
->
cookie
);
p
=
xdr_encode_hyper
(
p
,
readdir
->
cookie
);
encode_nfs4_verifier
(
xdr
,
&
readdir
->
verifier
);
encode_nfs4_verifier
(
xdr
,
&
readdir
->
verifier
);
p
=
reserve_space
(
xdr
,
20
);
p
=
reserve_space
(
xdr
,
20
);
...
@@ -1564,8 +1542,6 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
...
@@ -1564,8 +1542,6 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
*
p
++
=
cpu_to_be32
(
attrs
[
0
]
&
readdir
->
bitmask
[
0
]);
*
p
++
=
cpu_to_be32
(
attrs
[
0
]
&
readdir
->
bitmask
[
0
]);
*
p
=
cpu_to_be32
(
attrs
[
1
]
&
readdir
->
bitmask
[
1
]);
*
p
=
cpu_to_be32
(
attrs
[
1
]
&
readdir
->
bitmask
[
1
]);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_readdir_maxsz
;
memcpy
(
verf
,
readdir
->
verifier
.
data
,
sizeof
(
verf
));
memcpy
(
verf
,
readdir
->
verifier
.
data
,
sizeof
(
verf
));
dprintk
(
"%s: cookie = %Lu, verifier = %08x:%08x, bitmap = %08x:%08x
\n
"
,
dprintk
(
"%s: cookie = %Lu, verifier = %08x:%08x, bitmap = %08x:%08x
\n
"
,
__func__
,
__func__
,
...
@@ -1598,11 +1574,9 @@ static void encode_renew(struct xdr_stream *xdr, clientid4 clid,
...
@@ -1598,11 +1574,9 @@ static void encode_renew(struct xdr_stream *xdr, clientid4 clid,
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
12
);
encode_op_hdr
(
xdr
,
OP_RENEW
,
decode_renew_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_RENEW
);
p
=
reserve_space
(
xdr
,
8
);
xdr_encode_hyper
(
p
,
clid
);
xdr_encode_hyper
(
p
,
clid
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_renew_maxsz
;
}
}
static
void
static
void
...
@@ -1660,12 +1634,11 @@ static void encode_setclientid_confirm(struct xdr_stream *xdr, const struct nfs4
...
@@ -1660,12 +1634,11 @@ static void encode_setclientid_confirm(struct xdr_stream *xdr, const struct nfs4
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
12
);
encode_op_hdr
(
xdr
,
OP_SETCLIENTID_CONFIRM
,
*
p
++
=
cpu_to_be32
(
OP_SETCLIENTID_CONFIRM
);
decode_setclientid_confirm_maxsz
,
hdr
);
p
=
reserve_space
(
xdr
,
8
);
p
=
xdr_encode_hyper
(
p
,
arg
->
clientid
);
p
=
xdr_encode_hyper
(
p
,
arg
->
clientid
);
encode_nfs4_verifier
(
xdr
,
&
arg
->
confirm
);
encode_nfs4_verifier
(
xdr
,
&
arg
->
confirm
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_setclientid_confirm_maxsz
;
}
}
static
void
encode_write
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_writeargs
*
args
,
struct
compound_hdr
*
hdr
)
static
void
encode_write
(
struct
xdr_stream
*
xdr
,
const
struct
nfs_writeargs
*
args
,
struct
compound_hdr
*
hdr
)
...
@@ -1758,8 +1731,8 @@ static void encode_create_session(struct xdr_stream *xdr,
...
@@ -1758,8 +1731,8 @@ static void encode_create_session(struct xdr_stream *xdr,
len
=
scnprintf
(
machine_name
,
sizeof
(
machine_name
),
"%s"
,
len
=
scnprintf
(
machine_name
,
sizeof
(
machine_name
),
"%s"
,
clp
->
cl_ipaddr
);
clp
->
cl_ipaddr
);
p
=
reserve_space
(
xdr
,
20
+
2
*
28
+
20
+
len
+
12
);
encode_op_hdr
(
xdr
,
OP_CREATE_SESSION
,
decode_create_session_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_CREATE_SESSION
);
p
=
reserve_space
(
xdr
,
16
+
2
*
28
+
20
+
len
+
12
);
p
=
xdr_encode_hyper
(
p
,
clp
->
cl_clientid
);
p
=
xdr_encode_hyper
(
p
,
clp
->
cl_clientid
);
*
p
++
=
cpu_to_be32
(
clp
->
cl_seqid
);
/*Sequence id */
*
p
++
=
cpu_to_be32
(
clp
->
cl_seqid
);
/*Sequence id */
*
p
++
=
cpu_to_be32
(
args
->
flags
);
/*flags */
*
p
++
=
cpu_to_be32
(
args
->
flags
);
/*flags */
...
@@ -1792,33 +1765,22 @@ static void encode_create_session(struct xdr_stream *xdr,
...
@@ -1792,33 +1765,22 @@ static void encode_create_session(struct xdr_stream *xdr,
*
p
++
=
cpu_to_be32
(
0
);
/* UID */
*
p
++
=
cpu_to_be32
(
0
);
/* UID */
*
p
++
=
cpu_to_be32
(
0
);
/* GID */
*
p
++
=
cpu_to_be32
(
0
);
/* GID */
*
p
=
cpu_to_be32
(
0
);
/* No more gids */
*
p
=
cpu_to_be32
(
0
);
/* No more gids */
hdr
->
nops
++
;
hdr
->
replen
+=
decode_create_session_maxsz
;
}
}
static
void
encode_destroy_session
(
struct
xdr_stream
*
xdr
,
static
void
encode_destroy_session
(
struct
xdr_stream
*
xdr
,
struct
nfs4_session
*
session
,
struct
nfs4_session
*
session
,
struct
compound_hdr
*
hdr
)
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
encode_op_hdr
(
xdr
,
OP_DESTROY_SESSION
,
decode_destroy_session_maxsz
,
hdr
);
p
=
reserve_space
(
xdr
,
4
+
NFS4_MAX_SESSIONID_LEN
);
encode_opaque_fixed
(
xdr
,
session
->
sess_id
.
data
,
NFS4_MAX_SESSIONID_LEN
);
*
p
++
=
cpu_to_be32
(
OP_DESTROY_SESSION
);
xdr_encode_opaque_fixed
(
p
,
session
->
sess_id
.
data
,
NFS4_MAX_SESSIONID_LEN
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_destroy_session_maxsz
;
}
}
static
void
encode_reclaim_complete
(
struct
xdr_stream
*
xdr
,
static
void
encode_reclaim_complete
(
struct
xdr_stream
*
xdr
,
struct
nfs41_reclaim_complete_args
*
args
,
struct
nfs41_reclaim_complete_args
*
args
,
struct
compound_hdr
*
hdr
)
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
encode_op_hdr
(
xdr
,
OP_RECLAIM_COMPLETE
,
decode_reclaim_complete_maxsz
,
hdr
);
encode_uint32
(
xdr
,
args
->
one_fs
);
p
=
reserve_space
(
xdr
,
8
);
*
p
++
=
cpu_to_be32
(
OP_RECLAIM_COMPLETE
);
*
p
++
=
cpu_to_be32
(
args
->
one_fs
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_reclaim_complete_maxsz
;
}
}
#endif
/* CONFIG_NFS_V4_1 */
#endif
/* CONFIG_NFS_V4_1 */
...
@@ -1840,8 +1802,7 @@ static void encode_sequence(struct xdr_stream *xdr,
...
@@ -1840,8 +1802,7 @@ static void encode_sequence(struct xdr_stream *xdr,
WARN_ON
(
args
->
sa_slotid
==
NFS4_MAX_SLOT_TABLE
);
WARN_ON
(
args
->
sa_slotid
==
NFS4_MAX_SLOT_TABLE
);
slot
=
tp
->
slots
+
args
->
sa_slotid
;
slot
=
tp
->
slots
+
args
->
sa_slotid
;
p
=
reserve_space
(
xdr
,
4
+
NFS4_MAX_SESSIONID_LEN
+
16
);
encode_op_hdr
(
xdr
,
OP_SEQUENCE
,
decode_sequence_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_SEQUENCE
);
/*
/*
* Sessionid + seqid + slotid + max slotid + cache_this
* Sessionid + seqid + slotid + max slotid + cache_this
...
@@ -1855,13 +1816,12 @@ static void encode_sequence(struct xdr_stream *xdr,
...
@@ -1855,13 +1816,12 @@ static void encode_sequence(struct xdr_stream *xdr,
((
u32
*
)
session
->
sess_id
.
data
)[
3
],
((
u32
*
)
session
->
sess_id
.
data
)[
3
],
slot
->
seq_nr
,
args
->
sa_slotid
,
slot
->
seq_nr
,
args
->
sa_slotid
,
tp
->
highest_used_slotid
,
args
->
sa_cache_this
);
tp
->
highest_used_slotid
,
args
->
sa_cache_this
);
p
=
reserve_space
(
xdr
,
NFS4_MAX_SESSIONID_LEN
+
16
);
p
=
xdr_encode_opaque_fixed
(
p
,
session
->
sess_id
.
data
,
NFS4_MAX_SESSIONID_LEN
);
p
=
xdr_encode_opaque_fixed
(
p
,
session
->
sess_id
.
data
,
NFS4_MAX_SESSIONID_LEN
);
*
p
++
=
cpu_to_be32
(
slot
->
seq_nr
);
*
p
++
=
cpu_to_be32
(
slot
->
seq_nr
);
*
p
++
=
cpu_to_be32
(
args
->
sa_slotid
);
*
p
++
=
cpu_to_be32
(
args
->
sa_slotid
);
*
p
++
=
cpu_to_be32
(
tp
->
highest_used_slotid
);
*
p
++
=
cpu_to_be32
(
tp
->
highest_used_slotid
);
*
p
=
cpu_to_be32
(
args
->
sa_cache_this
);
*
p
=
cpu_to_be32
(
args
->
sa_cache_this
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_sequence_maxsz
;
#endif
/* CONFIG_NFS_V4_1 */
#endif
/* CONFIG_NFS_V4_1 */
}
}
...
@@ -1876,14 +1836,12 @@ encode_getdevicelist(struct xdr_stream *xdr,
...
@@ -1876,14 +1836,12 @@ encode_getdevicelist(struct xdr_stream *xdr,
.
data
=
"dummmmmy"
,
.
data
=
"dummmmmy"
,
};
};
p
=
reserve_space
(
xdr
,
20
);
encode_op_hdr
(
xdr
,
OP_GETDEVICELIST
,
decode_getdevicelist_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_GETDEVICELIST
);
p
=
reserve_space
(
xdr
,
16
);
*
p
++
=
cpu_to_be32
(
args
->
layoutclass
);
*
p
++
=
cpu_to_be32
(
args
->
layoutclass
);
*
p
++
=
cpu_to_be32
(
NFS4_PNFS_GETDEVLIST_MAXNUM
);
*
p
++
=
cpu_to_be32
(
NFS4_PNFS_GETDEVLIST_MAXNUM
);
xdr_encode_hyper
(
p
,
0ULL
);
/* cookie */
xdr_encode_hyper
(
p
,
0ULL
);
/* cookie */
encode_nfs4_verifier
(
xdr
,
&
dummy
);
encode_nfs4_verifier
(
xdr
,
&
dummy
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_getdevicelist_maxsz
;
}
}
static
void
static
void
...
@@ -1893,15 +1851,13 @@ encode_getdeviceinfo(struct xdr_stream *xdr,
...
@@ -1893,15 +1851,13 @@ encode_getdeviceinfo(struct xdr_stream *xdr,
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
16
+
NFS4_DEVICEID4_SIZE
);
encode_op_hdr
(
xdr
,
OP_GETDEVICEINFO
,
decode_getdeviceinfo_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_GETDEVICEINFO
);
p
=
reserve_space
(
xdr
,
12
+
NFS4_DEVICEID4_SIZE
);
p
=
xdr_encode_opaque_fixed
(
p
,
args
->
pdev
->
dev_id
.
data
,
p
=
xdr_encode_opaque_fixed
(
p
,
args
->
pdev
->
dev_id
.
data
,
NFS4_DEVICEID4_SIZE
);
NFS4_DEVICEID4_SIZE
);
*
p
++
=
cpu_to_be32
(
args
->
pdev
->
layout_type
);
*
p
++
=
cpu_to_be32
(
args
->
pdev
->
layout_type
);
*
p
++
=
cpu_to_be32
(
args
->
pdev
->
pglen
);
/* gdia_maxcount */
*
p
++
=
cpu_to_be32
(
args
->
pdev
->
pglen
);
/* gdia_maxcount */
*
p
++
=
cpu_to_be32
(
0
);
/* bitmap length 0 */
*
p
++
=
cpu_to_be32
(
0
);
/* bitmap length 0 */
hdr
->
nops
++
;
hdr
->
replen
+=
decode_getdeviceinfo_maxsz
;
}
}
static
void
static
void
...
@@ -1911,8 +1867,8 @@ encode_layoutget(struct xdr_stream *xdr,
...
@@ -1911,8 +1867,8 @@ encode_layoutget(struct xdr_stream *xdr,
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
40
);
encode_op_hdr
(
xdr
,
OP_LAYOUTGET
,
decode_layoutget_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LAYOUTGET
);
p
=
reserve_space
(
xdr
,
36
);
*
p
++
=
cpu_to_be32
(
0
);
/* Signal layout available */
*
p
++
=
cpu_to_be32
(
0
);
/* Signal layout available */
*
p
++
=
cpu_to_be32
(
args
->
type
);
*
p
++
=
cpu_to_be32
(
args
->
type
);
*
p
++
=
cpu_to_be32
(
args
->
range
.
iomode
);
*
p
++
=
cpu_to_be32
(
args
->
range
.
iomode
);
...
@@ -1920,8 +1876,7 @@ encode_layoutget(struct xdr_stream *xdr,
...
@@ -1920,8 +1876,7 @@ encode_layoutget(struct xdr_stream *xdr,
p
=
xdr_encode_hyper
(
p
,
args
->
range
.
length
);
p
=
xdr_encode_hyper
(
p
,
args
->
range
.
length
);
p
=
xdr_encode_hyper
(
p
,
args
->
minlength
);
p
=
xdr_encode_hyper
(
p
,
args
->
minlength
);
encode_nfs4_stateid
(
xdr
,
&
args
->
stateid
);
encode_nfs4_stateid
(
xdr
,
&
args
->
stateid
);
p
=
reserve_space
(
xdr
,
4
);
encode_uint32
(
xdr
,
args
->
maxcount
);
*
p
=
cpu_to_be32
(
args
->
maxcount
);
dprintk
(
"%s: 1st type:0x%x iomode:%d off:%lu len:%lu mc:%d
\n
"
,
dprintk
(
"%s: 1st type:0x%x iomode:%d off:%lu len:%lu mc:%d
\n
"
,
__func__
,
__func__
,
...
@@ -1930,8 +1885,6 @@ encode_layoutget(struct xdr_stream *xdr,
...
@@ -1930,8 +1885,6 @@ encode_layoutget(struct xdr_stream *xdr,
(
unsigned
long
)
args
->
range
.
offset
,
(
unsigned
long
)
args
->
range
.
offset
,
(
unsigned
long
)
args
->
range
.
length
,
(
unsigned
long
)
args
->
range
.
length
,
args
->
maxcount
);
args
->
maxcount
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_layoutget_maxsz
;
}
}
static
int
static
int
...
@@ -1945,8 +1898,8 @@ encode_layoutcommit(struct xdr_stream *xdr,
...
@@ -1945,8 +1898,8 @@ encode_layoutcommit(struct xdr_stream *xdr,
dprintk
(
"%s: lbw: %llu type: %d
\n
"
,
__func__
,
args
->
lastbytewritten
,
dprintk
(
"%s: lbw: %llu type: %d
\n
"
,
__func__
,
args
->
lastbytewritten
,
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
id
);
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
id
);
p
=
reserve_space
(
xdr
,
24
);
encode_op_hdr
(
xdr
,
OP_LAYOUTCOMMIT
,
decode_layoutcommit_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LAYOUTCOMMIT
);
p
=
reserve_space
(
xdr
,
20
);
/* Only whole file layouts */
/* Only whole file layouts */
p
=
xdr_encode_hyper
(
p
,
0
);
/* offset */
p
=
xdr_encode_hyper
(
p
,
0
);
/* offset */
p
=
xdr_encode_hyper
(
p
,
args
->
lastbytewritten
+
1
);
/* length */
p
=
xdr_encode_hyper
(
p
,
args
->
lastbytewritten
+
1
);
/* length */
...
@@ -1961,13 +1914,9 @@ encode_layoutcommit(struct xdr_stream *xdr,
...
@@ -1961,13 +1914,9 @@ encode_layoutcommit(struct xdr_stream *xdr,
if
(
NFS_SERVER
(
inode
)
->
pnfs_curr_ld
->
encode_layoutcommit
)
if
(
NFS_SERVER
(
inode
)
->
pnfs_curr_ld
->
encode_layoutcommit
)
NFS_SERVER
(
inode
)
->
pnfs_curr_ld
->
encode_layoutcommit
(
NFS_SERVER
(
inode
)
->
pnfs_curr_ld
->
encode_layoutcommit
(
NFS_I
(
inode
)
->
layout
,
xdr
,
args
);
NFS_I
(
inode
)
->
layout
,
xdr
,
args
);
else
{
else
p
=
reserve_space
(
xdr
,
4
);
encode_uint32
(
xdr
,
0
);
/* no layout-type payload */
*
p
=
cpu_to_be32
(
0
);
/* no layout-type payload */
}
hdr
->
nops
++
;
hdr
->
replen
+=
decode_layoutcommit_maxsz
;
return
0
;
return
0
;
}
}
...
@@ -1978,8 +1927,8 @@ encode_layoutreturn(struct xdr_stream *xdr,
...
@@ -1978,8 +1927,8 @@ encode_layoutreturn(struct xdr_stream *xdr,
{
{
__be32
*
p
;
__be32
*
p
;
p
=
reserve_space
(
xdr
,
20
);
encode_op_hdr
(
xdr
,
OP_LAYOUTRETURN
,
decode_layoutreturn_maxsz
,
hdr
);
*
p
++
=
cpu_to_be32
(
OP_LAYOUTRETURN
);
p
=
reserve_space
(
xdr
,
16
);
*
p
++
=
cpu_to_be32
(
0
);
/* reclaim. always 0 for now */
*
p
++
=
cpu_to_be32
(
0
);
/* reclaim. always 0 for now */
*
p
++
=
cpu_to_be32
(
args
->
layout_type
);
*
p
++
=
cpu_to_be32
(
args
->
layout_type
);
*
p
++
=
cpu_to_be32
(
IOMODE_ANY
);
*
p
++
=
cpu_to_be32
(
IOMODE_ANY
);
...
@@ -1993,12 +1942,8 @@ encode_layoutreturn(struct xdr_stream *xdr,
...
@@ -1993,12 +1942,8 @@ encode_layoutreturn(struct xdr_stream *xdr,
if
(
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
encode_layoutreturn
)
{
if
(
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
encode_layoutreturn
)
{
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
encode_layoutreturn
(
NFS_SERVER
(
args
->
inode
)
->
pnfs_curr_ld
->
encode_layoutreturn
(
NFS_I
(
args
->
inode
)
->
layout
,
xdr
,
args
);
NFS_I
(
args
->
inode
)
->
layout
,
xdr
,
args
);
}
else
{
}
else
p
=
reserve_space
(
xdr
,
4
);
encode_uint32
(
xdr
,
0
);
*
p
=
cpu_to_be32
(
0
);
}
hdr
->
nops
++
;
hdr
->
replen
+=
decode_layoutreturn_maxsz
;
}
}
static
int
static
int
...
@@ -2006,12 +1951,8 @@ encode_secinfo_no_name(struct xdr_stream *xdr,
...
@@ -2006,12 +1951,8 @@ encode_secinfo_no_name(struct xdr_stream *xdr,
const
struct
nfs41_secinfo_no_name_args
*
args
,
const
struct
nfs41_secinfo_no_name_args
*
args
,
struct
compound_hdr
*
hdr
)
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
encode_op_hdr
(
xdr
,
OP_SECINFO_NO_NAME
,
decode_secinfo_no_name_maxsz
,
hdr
);
p
=
reserve_space
(
xdr
,
8
);
encode_uint32
(
xdr
,
args
->
style
);
*
p
++
=
cpu_to_be32
(
OP_SECINFO_NO_NAME
);
*
p
++
=
cpu_to_be32
(
args
->
style
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_secinfo_no_name_maxsz
;
return
0
;
return
0
;
}
}
...
@@ -2019,14 +1960,9 @@ static void encode_test_stateid(struct xdr_stream *xdr,
...
@@ -2019,14 +1960,9 @@ static void encode_test_stateid(struct xdr_stream *xdr,
struct
nfs41_test_stateid_args
*
args
,
struct
nfs41_test_stateid_args
*
args
,
struct
compound_hdr
*
hdr
)
struct
compound_hdr
*
hdr
)
{
{
__be32
*
p
;
encode_op_hdr
(
xdr
,
OP_TEST_STATEID
,
decode_test_stateid_maxsz
,
hdr
);
encode_uint32
(
xdr
,
1
);
p
=
reserve_space
(
xdr
,
8
);
*
p
++
=
cpu_to_be32
(
OP_TEST_STATEID
);
*
p
=
cpu_to_be32
(
1
);
encode_nfs4_stateid
(
xdr
,
args
->
stateid
);
encode_nfs4_stateid
(
xdr
,
args
->
stateid
);
hdr
->
nops
++
;
hdr
->
replen
+=
decode_test_stateid_maxsz
;
}
}
static
void
encode_free_stateid
(
struct
xdr_stream
*
xdr
,
static
void
encode_free_stateid
(
struct
xdr_stream
*
xdr
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment