File tree Expand file tree Collapse file tree 3 files changed +11
-2
lines changed Expand file tree Collapse file tree 3 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -3263,6 +3263,7 @@ static void nfs4_close_done(struct rpc_task *task, void *data)
3263
3263
break ;
3264
3264
case - NFS4ERR_OLD_STATEID :
3265
3265
if (nfs4_layoutreturn_refresh_stateid (& calldata -> arg .lr_args -> stateid ,
3266
+ & calldata -> arg .lr_args -> range ,
3266
3267
calldata -> inode ))
3267
3268
goto lr_restart ;
3268
3269
/* Fallthrough */
@@ -6001,6 +6002,7 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata)
6001
6002
break ;
6002
6003
case - NFS4ERR_OLD_STATEID :
6003
6004
if (nfs4_layoutreturn_refresh_stateid (& data -> args .lr_args -> stateid ,
6005
+ & data -> args .lr_args -> range ,
6004
6006
data -> inode ))
6005
6007
goto lr_restart ;
6006
6008
/* Fallthrough */
@@ -8952,6 +8954,7 @@ static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata)
8952
8954
switch (task -> tk_status ) {
8953
8955
case - NFS4ERR_OLD_STATEID :
8954
8956
if (nfs4_layoutreturn_refresh_stateid (& lrp -> args .stateid ,
8957
+ & lrp -> args .range ,
8955
8958
lrp -> args .inode ))
8956
8959
goto out_restart ;
8957
8960
/* Fallthrough */
Original file line number Diff line number Diff line change @@ -361,7 +361,9 @@ pnfs_clear_lseg_state(struct pnfs_layout_segment *lseg,
361
361
/*
362
362
* Update the seqid of a layout stateid
363
363
*/
364
- bool nfs4_layoutreturn_refresh_stateid (nfs4_stateid * dst , struct inode * inode )
364
+ bool nfs4_layoutreturn_refresh_stateid (nfs4_stateid * dst ,
365
+ struct pnfs_layout_range * dst_range ,
366
+ struct inode * inode )
365
367
{
366
368
struct pnfs_layout_hdr * lo ;
367
369
struct pnfs_layout_range range = {
@@ -379,6 +381,7 @@ bool nfs4_layoutreturn_refresh_stateid(nfs4_stateid *dst, struct inode *inode)
379
381
err = pnfs_mark_matching_lsegs_return (lo , & head , & range , 0 );
380
382
if (err != - EBUSY ) {
381
383
dst -> seqid = lo -> plh_stateid .seqid ;
384
+ * dst_range = range ;
382
385
ret = true;
383
386
}
384
387
}
Original file line number Diff line number Diff line change @@ -259,7 +259,9 @@ int pnfs_destroy_layouts_byfsid(struct nfs_client *clp,
259
259
bool is_recall );
260
260
int pnfs_destroy_layouts_byclid (struct nfs_client * clp ,
261
261
bool is_recall );
262
- bool nfs4_layoutreturn_refresh_stateid (nfs4_stateid * dst , struct inode * inode );
262
+ bool nfs4_layoutreturn_refresh_stateid (nfs4_stateid * dst ,
263
+ struct pnfs_layout_range * dst_range ,
264
+ struct inode * inode );
263
265
void pnfs_put_layout_hdr (struct pnfs_layout_hdr * lo );
264
266
void pnfs_set_layout_stateid (struct pnfs_layout_hdr * lo ,
265
267
const nfs4_stateid * new ,
@@ -781,6 +783,7 @@ static inline void nfs4_pnfs_v3_ds_connect_unload(void)
781
783
}
782
784
783
785
static inline bool nfs4_layoutreturn_refresh_stateid (nfs4_stateid * dst ,
786
+ struct pnfs_layout_range * dst_range ,
784
787
struct inode * inode )
785
788
{
786
789
return false;
You can’t perform that action at this time.
0 commit comments