@@ -47,9 +47,9 @@ static void disk_release_events(struct gendisk *disk);
/*
* Set disk capacity and notify if the size is not currently zero and will not
- * be set to zero.
+ * be set to zero. Returns true if a uevent was sent, otherwise false.
*/
-void set_capacity_and_notify(struct gendisk *disk, sector_t size)
+bool set_capacity_and_notify(struct gendisk *disk, sector_t size)
{
sector_t capacity = get_capacity(disk);
@@ -60,7 +60,10 @@ void set_capacity_and_notify(struct gendisk *disk, sector_t size)
char *envp[] = { "RESIZE=1", NULL };
kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp);
+ return true;
}
+
+ return false;
}
EXPORT_SYMBOL_GPL(set_capacity_and_notify);
@@ -315,7 +315,7 @@ static inline int get_disk_ro(struct gendisk *disk)
extern void disk_block_events(struct gendisk *disk);
extern void disk_unblock_events(struct gendisk *disk);
extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
-void set_capacity_and_notify(struct gendisk *disk, sector_t size);
+bool set_capacity_and_notify(struct gendisk *disk, sector_t size);
/* drivers/char/random.c */
extern void add_disk_randomness(struct gendisk *disk) __latent_entropy;
Return if the function ended up sending an uevent or not. Signed-off-by: Christoph Hellwig <hch@lst.de> --- block/genhd.c | 7 +++++-- include/linux/genhd.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-)