aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/tree-mod-log.c
diff options
context:
space:
mode:
authorAnand Jain <[email protected]>2022-11-07 15:07:17 +0000
committerDavid Sterba <[email protected]>2022-12-05 17:00:55 +0000
commitbb21e30260a672172a26ee1626dc1463215cf18c (patch)
tree7c3beb014c5ec7888214289e24a59f5604af2c03 /fs/btrfs/tree-mod-log.c
parentbtrfs: constify input buffer parameter in compression code (diff)
downloadkernel-bb21e30260a672172a26ee1626dc1463215cf18c.tar.gz
kernel-bb21e30260a672172a26ee1626dc1463215cf18c.zip
btrfs: move device->name RCU allocation and assign to btrfs_alloc_device()
There is a repeating code section in the parent function after calling btrfs_alloc_device(), as below: name = rcu_string_strdup(path, GFP_...); if (!name) { btrfs_free_device(device); return ERR_PTR(-ENOMEM); } rcu_assign_pointer(device->name, name); Except in add_missing_dev() for obvious reasons. This patch consolidates that repeating code into the btrfs_alloc_device() itself so that the parent function doesn't have to duplicate code. This consolidation also helps to review issues regarding RCU lock violation with device->name. Parent function device_list_add() and add_missing_dev() use GFP_NOFS for the allocation, whereas the rest of the parent functions use GFP_KERNEL, so bring the NOFS allocation context using memalloc_nofs_save() in the function device_list_add() and add_missing_dev() is already doing it. Signed-off-by: Anand Jain <[email protected]> Reviewed-by: David Sterba <[email protected]> Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'fs/btrfs/tree-mod-log.c')
0 files changed, 0 insertions, 0 deletions