diff options
| author | Filipe Manana <fdmanana@suse.com> | 2022-03-23 16:19:29 +0000 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2022-05-16 17:03:10 +0200 |
| commit | 4f208dcc6bf572fbe8178cfea703f139803863ba (patch) | |
| tree | 58c998fbdae0f6dbef738d201c2d86c37b99bf1a /tools/perf/scripts/python/export-to-sqlite.py | |
| parent | btrfs: release path earlier at can_nocow_extent() (diff) | |
| download | linux-4f208dcc6bf572fbe8178cfea703f139803863ba.tar.gz linux-4f208dcc6bf572fbe8178cfea703f139803863ba.zip | |
btrfs: avoid blocking when allocating context for nowait dio read/write
When doing a NOWAIT direct IO read/write, we allocate a context object
(struct btrfs_dio_data) with GFP_NOFS, which can result in blocking
waiting for memory allocation (GFP_NOFS is __GFP_RECLAIM | __GFP_IO).
This is undesirable for the NOWAIT semantics, so do the allocation with
GFP_NOWAIT if we are serving a NOWAIT request and if the allocation fails
return -EAGAIN, so that the caller can fallback to a blocking context and
retry with a non-blocking write.
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 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions
