aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs.c
AgeCommit message (Expand)AuthorFilesLines
2025-10-20Coccinelle-based conversion to use ->i_state accessorsMateusz Guzik1-1/+1
2025-07-22NFS: Clean up pnfs_put_layout_hdr()/pnfs_destroy_layout_final()Trond Myklebust1-18/+10
2025-07-14pNFS: Handle RPC size limit for layoutcommitsSergey Bashirov1-3/+8
2025-06-23NFSv4/pNFS: Fix a race to wake on NFS_LAYOUT_DRAINBenjamin Coddington1-1/+3
2025-05-16NFS/pnfs: Fix the error path in pnfs_layoutreturn_retry_later_locked()Trond Myklebust1-17/+13
2025-05-16NFSv4/pnfs: Reset the layout state after a layoutreturnTrond Myklebust1-0/+9
2025-04-27NFSv4/pnfs: Layoutreturn on close must handle fatal networking errorsTrond Myklebust1-0/+12
2024-12-17NFS/pnfs: Fix a live lock between recalled layouts and layoutgetTrond Myklebust1-1/+1
2024-08-22NFSv4: Fix clearing of layout segments in layoutreturnTrond Myklebust1-3/+2
2024-07-08NFSv4/pNFS: Do layout state recovery upon rebootTrond Myklebust1-7/+99
2024-07-08NFSv4/pNFS: Remove redundant call to unhash the layoutTrond Myklebust1-2/+0
2024-07-08NFSv4/pnfs: Give nfs4_proc_layoutreturn() a flags argumentTrond Myklebust1-7/+11
2024-07-08NFSv4/pNFS: Retry the layout return later in case of a timeout or rebootTrond Myklebust1-0/+12
2024-07-08NFSv4/pNFS: Handle server reboots in pnfs_poc_release()Trond Myklebust1-2/+4
2024-07-08NFSv4/pNFS: Add a helper to defer failed layoutreturn callsTrond Myklebust1-3/+22
2024-07-08NFSv4/pnfs: Add support for the PNFS_LAYOUT_FILE_BULK_RETURN flagTrond Myklebust1-16/+19
2024-07-08pNFS: Add a flag argument to pnfs_destroy_layouts_byclid()Trond Myklebust1-12/+9
2024-07-08NFSv4/pnfs: Remove redundant list checkTrond Myklebust1-4/+0
2024-05-21pNFS: rework pnfs_generic_pg_check_layout to check IO rangeOlga Kornievskaia1-20/+9
2024-03-09NFS: avoid infinite loop in pnfs_update_layout.NeilBrown1-0/+8
2024-01-04pNFS: Fix the pnfs block driver's calculation of layoutget sizeTrond Myklebust1-1/+2
2023-10-22NFSv4/pnfs: Allow layoutget to return EAGAIN for softerr mountsTrond Myklebust1-2/+6
2023-10-18pNFS: Fix a hang in nfs4_evict_inode()Trond Myklebust1-10/+23
2023-02-15pNFS/filelayout: treat GETDEVICEINFO errors as layout failureOlga Kornievskaia1-1/+1
2022-10-13Merge tag 'nfs-for-6.1-1' of git://git.linux-nfs.org/projects/anna/linux-nfsLinus Torvalds1-2/+7
2022-10-10Merge tag 'sched-core-2022-10-07' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-2/+2
2022-10-06NFSv4/flexfiles: Cancel I/O if the layout is recalled or revokedTrond Myklebust1-2/+7
2022-09-07freezer,sched: Rewrite core freezer logicPeter Zijlstra1-2/+2
2022-08-13NFS: Remove a bogus flag setting in pnfs_write_done_resend_to_mdsTrond Myklebust1-1/+0
2022-06-06pNFS: Avoid a live lock condition in pnfs_update_layout()Trond Myklebust1-6/+9
2022-06-06pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLETrond Myklebust1-0/+6
2022-05-17NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layoutTrond Myklebust1-0/+2
2022-03-28NFSv4/pNFS: Fix another issue with a list iterator pointing to the headTrond Myklebust1-0/+11
2022-03-22NFSv4/pnfs: Ensure pNFS allocation modes are consistent with nfsiodTrond Myklebust1-22/+17
2022-02-25NFS: Convert GFP_NOFS to GFP_KERNELTrond Myklebust1-2/+2
2021-08-09NFSv4/pnfs: The layout barrier indicate a minimal value for the seqidTrond Myklebust1-1/+1
2021-08-09NFSv4/pNFS: Always allow update of a zero valued layout barrierTrond Myklebust1-1/+1
2021-08-09NFSv4/pNFS: Remove dead codeTrond Myklebust1-4/+0
2021-08-09NFSv4/pNFS: Fix a layoutget livelock loopTrond Myklebust1-4/+8
2021-07-08NFSv4/pnfs: Clean up layout get on openTrond Myklebust1-12/+16
2021-07-08NFSv4/pnfs: Fix layoutget behaviour after invalidationTrond Myklebust1-5/+5
2021-07-08NFSv4/pnfs: Fix the layout barrier updateTrond Myklebust1-15/+15
2021-05-20NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()Anna Schumaker1-8/+7
2021-05-20pNFS/NFSv4: Remove redundant initialization of 'rd_size'Yang Li1-1/+1
2021-04-18NFSv4.1: Simplify layout return in pnfs_layout_process()Trond Myklebust1-3/+1
2021-04-18NFSv4: Don't discard segments marked for return in _pnfs_return_layout()Trond Myklebust1-1/+1
2021-04-16NFS: Don't discard pNFS layout segments that are marked for returnTrond Myklebust1-0/+5
2021-02-01nfs: Fix fall-through warnings for ClangGustavo A. R. Silva1-0/+2
2021-01-24pNFS/NFSv4: Improve rejection of out-of-order layoutsTrond Myklebust1-6/+16
2021-01-24pNFS/NFSv4: Update the layout barrier when we schedule a layoutreturnTrond Myklebust1-18/+21
2021-01-24pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()Trond Myklebust1-2/+7
2021-01-24pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()Trond Myklebust1-0/+1
2021-01-10NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counterTrond Myklebust1-0/+1
2021-01-10pNFS: Stricter ordering of layoutget and layoutreturnTrond Myklebust1-22/+21
2021-01-10pNFS: Clean up pnfs_layoutreturn_free_lsegs()Trond Myklebust1-5/+4
2021-01-10pNFS: We want return-on-close to complete when evicting the inodeTrond Myklebust1-5/+3
2021-01-10pNFS: Mark layout for return if return-on-close was not sentTrond Myklebust1-0/+6
2020-12-02NFSv4: Fix a pNFS layout related use-after-free race when freeing the inodeTrond Myklebust1-2/+31
2020-09-24nfs: fix spellint typo in pnfs.cWang Qing1-1/+1
2020-08-23treewide: Use fallthrough pseudo-keywordGustavo A. R. Silva1-1/+1
2020-08-12NFS: Fix flexfiles read failoverTrond Myklebust1-1/+3
2020-08-12NFS: Don't return layout segments that are in useTrond Myklebust1-19/+15
2020-08-12NFS: Don't move layouts to plh_return_segs list while in useTrond Myklebust1-11/+1
2020-08-05NFS: Report the stateid + status in trace_nfs4_layoutreturn_on_close()Trond Myklebust1-1/+1
2020-04-19NFS/pnfs: Fix a credential use-after-free issue in pnfs_roc()Trond Myklebust1-5/+2
2020-04-19NFS/pnfs: Ensure that _pnfs_return_layout() waits for layoutreturn completionTrond Myklebust1-1/+3
2020-04-13NFS: Fix an ABBA spinlock issue in pnfs_update_layout()Trond Myklebust1-1/+2
2020-04-03NFS/pnfs: Reference the layout cred in pnfs_prepare_layoutreturn()Trond Myklebust1-19/+33
2020-04-03NFS/pnfs: Fix dereference of layout cred in pnfs_layoutcommit_inode()Trond Myklebust1-1/+1
2020-03-27pNFS/flexfiles: Check the layout segment range before doing I/OTrond Myklebust1-1/+2
2020-03-27pNFS: Add infrastructure for cleaning up per-layout commit structuresTrond Myklebust1-0/+1
2020-03-16NFSv4: Add support for CB_RECALL_ANY for flexfiles layoutsTrond Myklebust1-12/+136
2020-03-16NFSv4: Ensure layout headers are RCU safeTrond Myklebust1-6/+6
2020-03-16NFSv4: Avoid unnecessary credential references in layoutgetTrond Myklebust1-2/+1
2020-03-16NFSv4/pnfs: pnfs_set_layout_stateid() should update the layout credTrond Myklebust1-4/+16
2020-02-03NFSv4: pnfs_roc() must use cred_fscmp() to compare credsTrond Myklebust1-1/+1
2020-01-15NFSv4.x recover from pre-mature loss of openstateidOlga Kornievskaia1-2/+0
2019-11-18NFSv4: add declaration of current_stateidBen Dooks1-2/+0
2019-09-20pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state seqidTrond Myklebust1-4/+14
2019-09-20NFSv4: Handle RPC level errors in LAYOUTRETURNTrond Myklebust1-0/+15
2019-09-20NFSv4: Handle NFS4ERR_DELAY correctly in return-on-closeTrond Myklebust1-0/+4
2019-09-20NFSv4: Clean up pNFS return-on-close error handlingTrond Myklebust1-0/+27
2019-09-20pNFS: Ensure we do clear the return-on-close layout stateid on fatal errorsTrond Myklebust1-2/+7
2019-08-04NFSv4: Report the error from nfs4_select_rw_stateid()Trond Myklebust1-6/+1
2019-07-18pnfs/flexfiles: Add tracepoints for detecting pnfs fallback to MDSTrond Myklebust1-0/+2
2019-07-18pnfs: Fix a problem where we gratuitously start doing I/O through the MDSTrond Myklebust1-1/+1
2019-07-18NFSv4: Don't use the zero stateid with layoutgetTrond Myklebust1-3/+11
2019-07-06NFS: Clean up writeback codeTrond Myklebust1-1/+1
2019-04-25NFS: Add a helper to return a pointer to the open context of a struct nfs_pageTrond Myklebust1-2/+2
2019-03-12pNFS: Fix a typo in pnfs_update_layoutTrond Myklebust1-1/+1
2019-02-23NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umountTrond Myklebust1-10/+23
2018-12-19NFS/NFSD/SUNRPC: replace generic creds with 'struct cred'.NeilBrown1-7/+7
2018-09-30NFS: Convert lookups of the open context to RCUTrond Myklebust1-1/+4
2018-09-30pNFS: Don't allocate more pages than we need to fit a layoutget responseTrond Myklebust1-0/+7
2018-09-30pNFS: Don't zero out the array in nfs4_alloc_pages()Trond Myklebust1-2/+2
2018-09-14pNFS: Ensure we return the error if someone kills a waiting layoutgetTrond Myklebust1-10/+16
2018-08-21pNFS: Remove unwanted optimisation of layoutgetTrond Myklebust1-6/+0
2018-08-16pNFS: Treat RECALLCONFLICT like DELAY...Trond Myklebust1-9/+0
2018-08-16pNFS: When updating the stateid in layoutreturn, also update the recall rangeTrond Myklebust1-1/+4
2018-08-08pnfs: Use true and false for boolean valuesGustavo A. R. Silva1-1/+1
2018-08-08pnfs: pnfs_find_lseg() should not check NFS_LSEG_LAYOUTRETURNTrond Myklebust1-1/+0
2018-08-08pnfs: Fix handling of NFS4ERR_OLD_STATEID replies to layoutreturnTrond Myklebust1-3/+14
2018-07-26pNFS: Parse the results of layoutget on open even if permissions checks failTrond Myklebust1-4/+0
2018-07-26pNFS: Wait for stale layoutget calls to complete in pnfs_update_layout()Trond Myklebust1-5/+31
2018-07-26pNFS: Ignore non-recalled layouts in pnfs_layout_need_return()Trond Myklebust1-1/+10
2018-07-26pNFS: Don't discard layout segments that are marked for returnTrond Myklebust1-7/+27
2018-06-12skip LAYOUTRETURN if layout is invalidOlga Kornievskaia1-2/+4
2018-05-31pnfs: Don't call commit on failed layoutget-on-openTrond Myklebust1-6/+1
2018-05-31pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached dataTrond Myklebust1-0/+5
2018-05-31NFSv4/pnfs: Don't switch off layoutget-on-open for transient errorsTrond Myklebust1-7/+15
2018-05-31NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised dataTrond Myklebust1-1/+2
2018-05-31pnfs: Fix manipulation of NFS_LAYOUT_FIRST_LAYOUTGETFred Isaman1-6/+14
2018-05-31pnfs: Add barrier to prevent lgopen using LAYOUTGET during recallFred Isaman1-1/+7
2018-05-31pnfs: Stop attempting LAYOUTGET on OPEN on failureFred Isaman1-1/+18
2018-05-31pnfs: Add LAYOUTGET to OPEN of an existing fileFred Isaman1-17/+73
2018-05-31pNFS: Refactor nfs4_layoutget_release()Trond Myklebust1-0/+50
2018-05-31pnfs: Add LAYOUTGET to OPEN of a new fileFred Isaman1-2/+79
2018-05-31pnfs: Change pnfs_alloc_init_layoutget_args call signatureFred Isaman1-12/+28
2018-05-31pnfs: Move nfs4_opendata into nfs4_fs.hFred Isaman1-0/+1
2018-05-31pnfs: move allocations out of nfs4_proc_layoutgetFred Isaman1-1/+11
2018-05-31pnfs: refactor send_layoutgetFred Isaman1-18/+15
2018-03-08pNFS: Prevent the layout header refcount going to zero in pnfs_roc()Trond Myklebust1-3/+10
2018-01-14nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mdsScott Mayhew1-2/+2
2018-01-14pnfs/blocklayout: handle transient devicesBenjamin Coddington1-1/+1
2017-11-17pNFS: Retry NFS4ERR_OLD_STATEID errors in layoutreturn-on-closeTrond Myklebust1-0/+18
2017-11-17NFS: Fix bool initialization/comparisonThomas Meyer1-1/+1
2017-11-17fs, nfs: convert pnfs_layout_hdr.plh_refcount from atomic_t to refcount_tElena Reshetova1-6/+6
2017-11-17fs, nfs: convert pnfs_layout_segment.pls_refcount from atomic_t to refcount_tElena Reshetova1-6/+6
2017-09-11pNFS: Use the standard I/O stateid when calling LAYOUTGETTrond Myklebust1-5/+9
2017-09-08NFS: Fix 2 use after free issues in the I/O codeTrond Myklebust1-2/+0
2017-08-15NFSv4/pnfs: Replace pnfs_put_lseg_locked() with pnfs_put_lseg()Trond Myklebust1-41/+0
2017-05-24pnfs: Fix the check for requests in range of layout segmentBenjamin Coddington1-8/+17
2017-05-02pNFS: Fix a deadlock when coalescing writes and returning the layoutTrond Myklebust1-2/+0
2017-05-02pNFS: Don't clear the layout return info if there are segments to returnTrond Myklebust1-1/+7
2017-04-29pNFS: Ensure we commit the layout if it has been invalidatedTrond Myklebust1-0/+3
2017-04-29pNFS/flexfiles: Fix up the ff_layout_write_pagelist failure pathTrond Myklebust1-1/+13
2017-04-28pNFS: Ensure we check layout validity before marking it for returnTrond Myklebust1-0/+4
2017-04-25pNFS: Fix use after free issues in pnfs_do_read()Trond Myklebust1-3/+13
2017-04-25pNFS: Ensure we check layout segment validity in the pg_init() callbackTrond Myklebust1-0/+13
2017-04-20pNFS: Unexport pnfs_put_lseg_locked and _pnfs_return_layoutTrond Myklebust1-2/+0
2017-01-26pNFS: Fix a reference leak in _pnfs_return_layoutTrond Myklebust1-1/+1
2016-12-19pNFS: Return RW layouts on OPEN_DOWNGRADETrond Myklebust1-3/+13
2016-12-05pNFS: Release NFS_LAYOUT_RETURN when invalidating the layout stateidTrond Myklebust1-9/+12
2016-12-03pNFS: Add a layoutreturn callback to performa layout-private setupTrond Myklebust1-1/+13
2016-12-02pNFS: Allow layout drivers to manage private data in struct nfs4_layoutreturnTrond Myklebust1-0/+1
2016-12-01pNFS: Skip invalid stateids when doing a bulk destroyTrond Myklebust1-0/+2
2016-12-01pNFS: Wait on outstanding layoutreturns to complete in pnfs_roc()Trond Myklebust1-0/+9
2016-12-01pNFS: Don't mark the layout as freed if the last lseg is marked for returnTrond Myklebust1-0/+2
2016-12-01pNFS: Sync the layout state bits in pnfs_cache_lseg_for_layoutreturnTrond Myklebust1-14/+15
2016-12-01pNFS: Fix bugs in _pnfs_return_layoutTrond Myklebust1-3/+10
2016-12-01pNFS: Clear all layout segment state in pnfs_mark_layout_stateid_invalidTrond Myklebust1-1/+18
2016-12-01pNFS: Enable layoutreturn operation for return-on-closeTrond Myklebust1-77/+62
2016-12-01pNFS: Clean up - add a helper to initialise struct layoutreturn_argsTrond Myklebust1-7/+18
2016-12-01pNFS: Don't mark layout segments invalid on layoutreturn in pnfs_rocTrond Myklebust1-7/+13
2016-12-01pNFS: Skip checking for return-on-close if the layout is invalidTrond Myklebust1-1/+2
2016-12-01pNFS: Remove spurious wake up in pnfs_layout_remove_lseg()Trond Myklebust1-3/+0
2016-12-01NFSv4: Ignore LAYOUTRETURN result if the layout doesn't match or is invalidTrond Myklebust1-1/+7
2016-12-01pNFS: Do not free layout segments that are marked for returnTrond Myklebust1-9/+65
2016-12-01pNFS: consolidate the different range intersection testsTrond Myklebust1-32/+3
2016-12-01pNFS: Fix race in pnfs_wait_on_layoutreturnTrond Myklebust1-5/+3
2016-12-01pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completedTrond Myklebust1-1/+5
2016-12-01pNFS: Force a retry of LAYOUTGET if the stateid doesn't match our cacheTrond Myklebust1-5/+6
2016-12-01pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateidTrond Myklebust1-8/+9
2016-12-01pNFS: Don't clear the layout stateid if a layout return is outstandingTrond Myklebust1-1/+3
2016-12-01pNFS: Fix a deadlock between read resends and layoutreturnTrond Myklebust1-0/+4
2016-11-07NFS: Don't print a pNFS error if we aren't using pNFSAnna Schumaker1-0/+2
2016-09-27pNFS: Fix atime updates on pNFS clientsTrond Myklebust1-3/+1
2016-09-19pnfs: add a new mechanism to select a layout driver according to an ordered listJeff Layton1-8/+48
2016-09-19pnfs: track multiple layout types in fsinfo structureJeff Layton1-11/+16
2016-09-04pNFS: Don't forget the layout stateid if there are outstanding LAYOUTGETsTrond Myklebust1-1/+2
2016-09-03pNFS: Fix pnfs_set_layout_stateid() to clear NFS_LAYOUT_INVALID_STIDTrond Myklebust1-17/+19
2016-09-03pNFS: Ensure LAYOUTGET and LAYOUTRETURN are properly serialisedTrond Myklebust1-0/+3
2016-08-23pNFS: The client must not do I/O to the DS if it's lease has expiredTrond Myklebust1-0/+1
2016-08-19pNFS: Handle NFS4ERR_OLD_STATEID correctly in LAYOUTSTAT callsTrond Myklebust1-1/+0
2016-07-24Merge branch 'pnfs'Trond Myklebust1-62/+89
2016-07-24Merge branch 'writeback'Trond Myklebust1-1/+4
2016-07-24pNFS: Remove redundant smp_mb() from pnfs_init_lseg()Trond Myklebust1-1/+0
2016-07-24pNFS: Cleanup - do layout segment initialisation in one placeTrond Myklebust1-4/+6
2016-07-24pNFS: Remove redundant stateid invalidationTrond Myklebust1-1/+0
2016-07-24pNFS: Remove redundant pnfs_mark_layout_returned_if_empty()Trond Myklebust1-1/+0
2016-07-24pNFS: Clear the layout metadata if the server changed the layout stateidTrond Myklebust1-1/+1
2016-07-24pNFS: Cleanup - don't open code pnfs_mark_layout_stateid_invalid()Trond Myklebust1-1/+1
2016-07-24NFS: pnfs_mark_matching_lsegs_return() should match the layout sequence idTrond Myklebust1-14/+23
2016-07-24pNFS: Do not set plh_return_seq for non-callback related layoutreturnsTrond Myklebust1-7/+6
2016-07-24pNFS: Ensure layoutreturn acts as a completion for layout callbacksTrond Myklebust1-15/+25
2016-07-24pNFS: Always update the layout barrier seqid on LAYOUTGETTrond Myklebust1-13/+14
2016-07-24pNFS: Always update the layout stateid if NFS_LAYOUT_INVALID_STID is setTrond Myklebust1-1/+1
2016-07-24pNFS: Clear the layout return tracking on layout reinitialisationTrond Myklebust1-5/+14
2016-07-19pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGETTrond Myklebust1-2/+11
2016-07-19pNFS: Separate handling of NFS4ERR_LAYOUTTRYLATER and RECALLCONFLICTTrond Myklebust1-0/+1
2016-07-19pNFS: Fix post-layoutget error handling in pnfs_update_layout()Trond Myklebust1-10/+11
2016-07-05pNFS: Files and flexfiles always need to commit before layoutcommitTrond Myklebust1-1/+4
2016-06-24NFSv4.1/pnfs: Mark the layout stateid invalid when all segments are removedTrond Myklebust1-1/+3
2016-06-24NFSv4.1/pnfs: Add sparse lock annotations for pnfs_find_alloc_layoutTrond Myklebust1-0/+2
2016-06-24NFSv4.1/pnfs: Layout stateids start out as being invalidTrond Myklebust1-2/+2
2016-05-26pnfs: pnfs_update_layout needs to consider if strict iomode checking is onTom Haynes1-12/+22
2016-05-17pnfs: make pnfs_layout_process more robustJeff Layton1-16/+11
2016-05-17pnfs: rework LAYOUTGET retry handlingJeff Layton1-68/+76
2016-05-17pnfs: lift retry logic from send_layoutget to pnfs_update_layoutJeff Layton1-36/+36
2016-05-17pnfs: fix bad error handling in send_layoutgetJeff Layton1-3/+8