NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised data
We need to ensure that pnfs_parse_lgopen() doesn't try to parse a struct nfs4_layoutget_res that was not filled by a successful call to decode_layoutget(). This can happen if we performed a cached open, or if either the OP_ACCESS or OP_GETATTR operations preceding the OP_LAYOUTGET in the compound returned an error. By initialising the 'status' field to NFS4ERR_DELAY, we ensure that pnfs_parse_lgopen() won't try to interpret the structure. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
30ae2412e9
commit
d49e0d5b99
|
@ -994,7 +994,8 @@ pnfs_alloc_init_layoutget_args(struct inode *ino,
|
|||
lgp->args.layout.pglen = max_pages * PAGE_SIZE;
|
||||
lgp->res.layoutp = &lgp->args.layout;
|
||||
|
||||
|
||||
/* Don't confuse uninitialised result and success */
|
||||
lgp->res.status = -NFS4ERR_DELAY;
|
||||
|
||||
lgp->args.minlength = PAGE_SIZE;
|
||||
if (lgp->args.minlength > range->length)
|
||||
|
|
Loading…
Reference in New Issue