diff options
Diffstat (limited to 'fs/nfs/flexfilelayout/flexfilelayoutdev.c')
-rw-r--r-- | fs/nfs/flexfilelayout/flexfilelayoutdev.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c index 0aa36be71fce..f7a3f6b05369 100644 --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c | |||
@@ -17,8 +17,8 @@ | |||
17 | 17 | ||
18 | #define NFSDBG_FACILITY NFSDBG_PNFS_LD | 18 | #define NFSDBG_FACILITY NFSDBG_PNFS_LD |
19 | 19 | ||
20 | static unsigned int dataserver_timeo = NFS4_DEF_DS_TIMEO; | 20 | static unsigned int dataserver_timeo = NFS_DEF_TCP_RETRANS; |
21 | static unsigned int dataserver_retrans = NFS4_DEF_DS_RETRANS; | 21 | static unsigned int dataserver_retrans; |
22 | 22 | ||
23 | void nfs4_ff_layout_put_deviceid(struct nfs4_ff_layout_ds *mirror_ds) | 23 | void nfs4_ff_layout_put_deviceid(struct nfs4_ff_layout_ds *mirror_ds) |
24 | { | 24 | { |
@@ -379,7 +379,7 @@ nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, u32 ds_idx, | |||
379 | 379 | ||
380 | devid = &mirror->mirror_ds->id_node; | 380 | devid = &mirror->mirror_ds->id_node; |
381 | if (ff_layout_test_devid_unavailable(devid)) | 381 | if (ff_layout_test_devid_unavailable(devid)) |
382 | goto out; | 382 | goto out_fail; |
383 | 383 | ||
384 | ds = mirror->mirror_ds->ds; | 384 | ds = mirror->mirror_ds->ds; |
385 | /* matching smp_wmb() in _nfs4_pnfs_v3/4_ds_connect */ | 385 | /* matching smp_wmb() in _nfs4_pnfs_v3/4_ds_connect */ |
@@ -405,15 +405,16 @@ nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, u32 ds_idx, | |||
405 | mirror->mirror_ds->ds_versions[0].rsize = max_payload; | 405 | mirror->mirror_ds->ds_versions[0].rsize = max_payload; |
406 | if (mirror->mirror_ds->ds_versions[0].wsize > max_payload) | 406 | if (mirror->mirror_ds->ds_versions[0].wsize > max_payload) |
407 | mirror->mirror_ds->ds_versions[0].wsize = max_payload; | 407 | mirror->mirror_ds->ds_versions[0].wsize = max_payload; |
408 | } else { | 408 | goto out; |
409 | ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), | ||
410 | mirror, lseg->pls_range.offset, | ||
411 | lseg->pls_range.length, NFS4ERR_NXIO, | ||
412 | OP_ILLEGAL, GFP_NOIO); | ||
413 | if (fail_return || !ff_layout_has_available_ds(lseg)) | ||
414 | pnfs_error_mark_layout_for_return(ino, lseg); | ||
415 | ds = NULL; | ||
416 | } | 409 | } |
410 | ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), | ||
411 | mirror, lseg->pls_range.offset, | ||
412 | lseg->pls_range.length, NFS4ERR_NXIO, | ||
413 | OP_ILLEGAL, GFP_NOIO); | ||
414 | out_fail: | ||
415 | if (fail_return || !ff_layout_has_available_ds(lseg)) | ||
416 | pnfs_error_mark_layout_for_return(ino, lseg); | ||
417 | ds = NULL; | ||
417 | out: | 418 | out: |
418 | return ds; | 419 | return ds; |
419 | } | 420 | } |