|
|
@@ -2843,6 +2843,9 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
|
|
|
nfs_save_change_attribute(d_inode(opendata->dir)));
|
|
|
}
|
|
|
|
|
|
+ /* Parse layoutget results before we check for access */
|
|
|
+ pnfs_parse_lgopen(state->inode, opendata->lgp, ctx);
|
|
|
+
|
|
|
ret = nfs4_opendata_access(sp->so_cred, opendata, state, fmode, flags);
|
|
|
if (ret != 0)
|
|
|
goto out;
|
|
|
@@ -2851,8 +2854,6 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
|
|
|
nfs_inode_attach_open_context(ctx);
|
|
|
if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
|
|
|
nfs4_schedule_stateid_recovery(server, state);
|
|
|
- else
|
|
|
- pnfs_parse_lgopen(state->inode, opendata->lgp, ctx);
|
|
|
}
|
|
|
|
|
|
out:
|