diff options
author | Yan, Zheng <zyan@redhat.com> | 2020-03-30 19:56:37 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2020-06-01 13:22:52 +0200 |
commit | 6f05b30ea063a2a05dda47a4105a69267ae5270f (patch) | |
tree | 41e1ba6c5d974c2a58d5019df99996063ae060d4 /fs/ceph/debugfs.c | |
parent | 88828190f0073bd8f9aa5e2b1caf753d289c6d49 (diff) |
ceph: reset i_requested_max_size if file write is not wanted
write can stuck at waiting for larger max_size in following sequence of
events:
- client opens a file and writes to position 'A' (larger than unit of
max size increment)
- client closes the file handle and updates wanted caps (not wanting
file write caps)
- client opens and truncates the file, writes to position 'A' again.
At the 1st event, client set inode's requested_max_size to 'A'. At the
2nd event, mds removes client's writable range, but client does not reset
requested_max_size. At the 3rd event, client does not request max size
because requested_max_size is already larger than 'A'.
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/debugfs.c')
0 files changed, 0 insertions, 0 deletions