Skip to content

Commit

Permalink
btrfs: Add comments on locking of several device-related fields
Browse files Browse the repository at this point in the history
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
Nikolay Borisov authored and David Sterba committed Jul 1, 2019
1 parent bd80d94 commit 0b6f5d4
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
4 changes: 3 additions & 1 deletion fs/btrfs/volumes.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,9 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
* chunk_mutex
* -----------
* protects chunks, adding or removing during allocation, trim or when a new
* device is added/removed
* device is added/removed. Additionally it also protects post_commit_list of
* individual devices, since they can be added to the transaction's
* post_commit_list only with chunk_mutex held.
*
* cleaner_mutex
* -------------
Expand Down
11 changes: 8 additions & 3 deletions fs/btrfs/volumes.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ struct btrfs_pending_bios {
#define BTRFS_DEV_STATE_FLUSH_SENT (4)

struct btrfs_device {
struct list_head dev_list;
struct list_head dev_alloc_list;
struct list_head dev_list; /* device_list_mutex */
struct list_head dev_alloc_list; /* chunk mutex */
struct list_head post_commit_list; /* chunk mutex */
struct btrfs_fs_devices *fs_devices;
struct btrfs_fs_info *fs_info;
Expand Down Expand Up @@ -229,9 +229,14 @@ struct btrfs_fs_devices {
* this mutex lock.
*/
struct mutex device_list_mutex;

/* List of all devices, protected by device_list_mutex */
struct list_head devices;

/* devices not currently being allocated */
/*
* Devices which can satisfy space allocation. Protected by
* chunk_mutex
*/
struct list_head alloc_list;

struct btrfs_fs_devices *seed;
Expand Down

0 comments on commit 0b6f5d4

Please sign in to comment.