summaryrefslogtreecommitdiff
path: root/staging/mops_ext_igmp.c
AgeCommit message (Expand)AuthorFilesLines
2013-05-13staging: add mausezahn staging directoryDaniel Borkmann1-0/+270
class='ctrl'>
authorJeff Mahoney <jeffm@suse.com>2016-09-20 08:50:21 -0400
committerDavid Sterba <dsterba@suse.com>2016-09-26 18:08:44 +0200
commitcea67ab92d3d4da9f2b4141d87cb8664757daca0 (patch)
tree75f6575c0d9aecef3d981ff0083222b2c4932be9
parent02794222c4132ac003e7281fb71f4ec1645ffc87 (diff)
btrfs: clean the old superblocks before freeing the device
btrfs_rm_device frees the block device but then re-opens it using the saved device name. A race exists between the close and the re-open that allows the block size to be changed. The result is getting stuck forever in the reclaim loop in __getblk_slow. This patch moves the superblock cleanup before closing the block device, which is also consistent with other callers. We also don't need a private copy of dev_name as the whole routine operates under the uuid_mutex. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat
-rw-r--r--fs/btrfs/volumes.c38
1 files changed, 11 insertions, 27 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c