diff options
author | Filipe Manana <fdmanana@suse.com> | 2025-05-14 12:18:07 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2025-05-15 18:24:37 +0200 |
commit | d8cddf2a1d71ab9dea59822ccb9bbb780f50ce0a (patch) | |
tree | 98a20737cd657d3f16742be67e394a7154d93016 /fs/btrfs/file.c | |
parent | a08625f8250622f538641efa159a946b4b546165 (diff) |
btrfs: don't return VM_FAULT_SIGBUS on failure to set delalloc for mmap write
If the call to btrfs_set_extent_delalloc() fails we are always returning
VM_FAULT_SIGBUS, which is odd since the error means "bad access" and the
most likely cause for btrfs_set_extent_delalloc() is -ENOMEM, which should
be translated to VM_FAULT_OOM.
Instead of returning VM_FAULT_SIGBUS return vmf_error(ret2), which gives
us a more appropriate return value, and we use that everywhere else too.
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9ecb9f3bd057..f6b32f24185c 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1937,7 +1937,7 @@ again: &cached_state); if (ret2) { btrfs_unlock_extent(io_tree, page_start, page_end, &cached_state); - ret = VM_FAULT_SIGBUS; + ret = vmf_error(ret2); goto out_unlock; } |