lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 16 May 2020 03:19:51 +0000 From: Luis Chamberlain <mcgrof@...nel.org> To: axboe@...nel.dk, viro@...iv.linux.org.uk, bvanassche@....org, gregkh@...uxfoundation.org, rostedt@...dmis.org, mingo@...hat.com, jack@...e.cz, ming.lei@...hat.com, nstange@...e.de, akpm@...ux-foundation.org Cc: mhocko@...e.com, yukuai3@...wei.com, linux-block@...r.kernel.org, linux-fsdevel@...r.kernel.org, linux-mm@...ck.org, linux-kernel@...r.kernel.org, Luis Chamberlain <mcgrof@...nel.org>, Christoph Hellwig <hch@....de> Subject: [PATCH v5 2/7] block: clarify context for gendisk / request_queue refcount increment helpers Let us clarify the context under which the helpers to increment the refcount for the gendisk and request_queue can be called under. We make this explicit on the places where we may sleep with might_sleep(). We don't address the decrement context yet, as that needs some extra work and fixes, but will be addressed in the next patch. Reviewed-by: Christoph Hellwig <hch@....de> Reviewed-by: Bart Van Assche <bvanassche@....org> Signed-off-by: Luis Chamberlain <mcgrof@...nel.org> --- block/blk-core.c | 2 ++ block/genhd.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/block/blk-core.c b/block/blk-core.c index e438c3b0815b..94216fa16a05 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -610,6 +610,8 @@ EXPORT_SYMBOL(blk_alloc_queue); * @q: the request_queue structure to increment the refcount for * * Increment the refcount of the request_queue kobject. + * + * Context: Any context. */ bool blk_get_queue(struct request_queue *q) { diff --git a/block/genhd.c b/block/genhd.c index af910e6a0233..598bd32ad28c 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -1017,11 +1017,15 @@ static ssize_t disk_badblocks_store(struct device *dev, * * This function gets the structure containing partitioning * information for the given device @devt. + * + * Context: can sleep */ struct gendisk *get_gendisk(dev_t devt, int *partno) { struct gendisk *disk = NULL; + might_sleep(); + if (MAJOR(devt) != BLOCK_EXT_MAJOR) { struct kobject *kobj; @@ -1785,6 +1789,8 @@ EXPORT_SYMBOL(__alloc_disk_node); * * This increments the refcount for the struct gendisk, and the gendisk's * fops module owner. + * + * Context: Any context. */ struct kobject *get_disk_and_module(struct gendisk *disk) { -- 2.26.2
Powered by blists - more mailing lists