From 9cee7f7e90bbf0280a2b1dd2b85e2df88d3befed Mon Sep 17 00:00:00 2001 From: Lukas Czerner Date: Thu, 6 Dec 2012 19:25:48 +0000 Subject: [PATCH] --- yaml --- r: 346733 b: refs/heads/master c: b8b8ff590f99678616f9ea85f5088542d1cfc0be h: refs/heads/master i: 346731: a557920946b990c46a793867abc732a9151c9f1d v: v3 --- [refs] | 2 +- trunk/fs/btrfs/volumes.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0b5b4a43e74b..ef12fd73c255 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac6a2b36f9fcfbe4865550afb6d333dec6b57578 +refs/heads/master: b8b8ff590f99678616f9ea85f5088542d1cfc0be diff --git a/trunk/fs/btrfs/volumes.c b/trunk/fs/btrfs/volumes.c index 0b1b7e22e7ea..886f4ba0f71d 100644 --- a/trunk/fs/btrfs/volumes.c +++ b/trunk/fs/btrfs/volumes.c @@ -72,6 +72,19 @@ static void free_fs_devices(struct btrfs_fs_devices *fs_devices) kfree(fs_devices); } +static void btrfs_kobject_uevent(struct block_device *bdev, + enum kobject_action action) +{ + int ret; + + ret = kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, action); + if (ret) + pr_warn("Sending event '%d' to kobject: '%s' (%p): failed\n", + action, + kobject_name(&disk_to_dev(bdev->bd_disk)->kobj), + &disk_to_dev(bdev->bd_disk)->kobj); +} + void btrfs_cleanup_fs_uuids(void) { struct btrfs_fs_devices *fs_devices; @@ -1542,6 +1555,9 @@ int btrfs_rm_device(struct btrfs_root *root, char *device_path) ret = 0; + /* Notify udev that device has changed */ + btrfs_kobject_uevent(bdev, KOBJ_CHANGE); + error_brelse: brelse(bh); if (bdev)