blk-crypto: pass a gendisk to blk_crypto_sysfs_{,un}register
authorChristoph Hellwig <hch@lst.de>
Mon, 14 Nov 2022 04:26:33 +0000 (05:26 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 30 Nov 2022 18:09:00 +0000 (11:09 -0700)
Prepare for changes to the block layer sysfs handling by passing the
readily available gendisk to blk_crypto_sysfs_{,un}register.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20221114042637.1009333-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-crypto-internal.h
block/blk-crypto-sysfs.c
block/blk-sysfs.c

index d31fa80454e490ef36c236df98bcf8839ada4068..a8cdaf26851e18e882b65c001c4897135b74fb76 100644 (file)
@@ -21,9 +21,9 @@ extern const struct blk_crypto_mode blk_crypto_modes[];
 
 #ifdef CONFIG_BLK_INLINE_ENCRYPTION
 
-int blk_crypto_sysfs_register(struct request_queue *q);
+int blk_crypto_sysfs_register(struct gendisk *disk);
 
-void blk_crypto_sysfs_unregister(struct request_queue *q);
+void blk_crypto_sysfs_unregister(struct gendisk *disk);
 
 void bio_crypt_dun_increment(u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE],
                             unsigned int inc);
@@ -79,12 +79,14 @@ bool __blk_crypto_cfg_supported(struct blk_crypto_profile *profile,
 
 #else /* CONFIG_BLK_INLINE_ENCRYPTION */
 
-static inline int blk_crypto_sysfs_register(struct request_queue *q)
+static inline int blk_crypto_sysfs_register(struct gendisk *disk)
 {
        return 0;
 }
 
-static inline void blk_crypto_sysfs_unregister(struct request_queue *q) { }
+static inline void blk_crypto_sysfs_unregister(struct gendisk *disk)
+{
+}
 
 static inline bool bio_crypt_rq_ctx_compatible(struct request *rq,
                                               struct bio *bio)
index fd93bd2f33b7580f596d5b00f9006dfb2bead608..e05f145cd797f41dd6c1bc9fc99943c4f65b3dca 100644 (file)
@@ -126,8 +126,9 @@ static struct kobj_type blk_crypto_ktype = {
  * If the request_queue has a blk_crypto_profile, create the "crypto"
  * subdirectory in sysfs (/sys/block/$disk/queue/crypto/).
  */
-int blk_crypto_sysfs_register(struct request_queue *q)
+int blk_crypto_sysfs_register(struct gendisk *disk)
 {
+       struct request_queue *q = disk->queue;
        struct blk_crypto_kobj *obj;
        int err;
 
@@ -149,9 +150,9 @@ int blk_crypto_sysfs_register(struct request_queue *q)
        return 0;
 }
 
-void blk_crypto_sysfs_unregister(struct request_queue *q)
+void blk_crypto_sysfs_unregister(struct gendisk *disk)
 {
-       kobject_put(q->crypto_kobject);
+       kobject_put(disk->queue->crypto_kobject);
 }
 
 static int __init blk_crypto_sysfs_init(void)
index 02e94c4beff174852f69f771ffa5dae193bbba0a..bd223a3bef47d8940214f1f72baaa099b2bb6234 100644 (file)
@@ -836,7 +836,7 @@ int blk_register_queue(struct gendisk *disk)
                        goto put_dev;
        }
 
-       ret = blk_crypto_sysfs_register(q);
+       ret = blk_crypto_sysfs_register(disk);
        if (ret)
                goto put_dev;
 
@@ -913,7 +913,7 @@ void blk_unregister_queue(struct gendisk *disk)
         */
        if (queue_is_mq(q))
                blk_mq_sysfs_unregister(disk);
-       blk_crypto_sysfs_unregister(q);
+       blk_crypto_sysfs_unregister(disk);
 
        mutex_lock(&q->sysfs_lock);
        elv_unregister_queue(q);