diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-07-15 20:27:28 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-07-15 20:27:28 +0300 |
commit | 1ce9d792e8ef286ed03b151b9bdfcd921e04a988 (patch) | |
tree | c54f990d7b34c0e99f979593ec912f9d0dcb8edc /Documentation/filesystems | |
parent | 8006112d6c4137bc48ca723261198c63d9e6d38a (diff) | |
parent | fac47b43c760ea90e64b895dba60df0327be7775 (diff) | |
download | linux-1ce9d792e8ef286ed03b151b9bdfcd921e04a988.tar.xz |
Merge tag 'ceph-for-5.19-rc7' of https://github.com/ceph/ceph-client
Pull ceph fix from Ilya Dryomov:
"A folio locking fixup that Xiubo and David cooperated on, marked for
stable. Most of it is in netfs but I picked it up into ceph tree on
agreement with David"
* tag 'ceph-for-5.19-rc7' of https://github.com/ceph/ceph-client:
netfs: do not unlock and put the folio twice
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/netfs_library.rst | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Documentation/filesystems/netfs_library.rst b/Documentation/filesystems/netfs_library.rst index 4d19b19bcc08..73a4176144b3 100644 --- a/Documentation/filesystems/netfs_library.rst +++ b/Documentation/filesystems/netfs_library.rst @@ -301,7 +301,7 @@ through which it can issue requests and negotiate:: void (*issue_read)(struct netfs_io_subrequest *subreq); bool (*is_still_valid)(struct netfs_io_request *rreq); int (*check_write_begin)(struct file *file, loff_t pos, unsigned len, - struct folio *folio, void **_fsdata); + struct folio **foliop, void **_fsdata); void (*done)(struct netfs_io_request *rreq); }; @@ -381,8 +381,10 @@ The operations are as follows: allocated/grabbed the folio to be modified to allow the filesystem to flush conflicting state before allowing it to be modified. - It should return 0 if everything is now fine, -EAGAIN if the folio should be - regrabbed and any other error code to abort the operation. + It may unlock and discard the folio it was given and set the caller's folio + pointer to NULL. It should return 0 if everything is now fine (``*foliop`` + left set) or the op should be retried (``*foliop`` cleared) and any other + error code to abort the operation. * ``done`` |