]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/nvme/target/io-cmd-file.c
nvmet-file: clamp-down file namespace lba_shift
[linux.git] / drivers / nvme / target / io-cmd-file.c
index bc6ebb51b0bf7c5310940fca19450fd115ea7788..05453f5d1448621b4eb262a7717833bf6f4729ee 100644 (file)
@@ -49,7 +49,12 @@ int nvmet_file_ns_enable(struct nvmet_ns *ns)
                goto err;
 
        ns->size = stat.size;
-       ns->blksize_shift = file_inode(ns->file)->i_blkbits;
+       /*
+        * i_blkbits can be greater than the universally accepted upper bound,
+        * so make sure we export a sane namespace lba_shift.
+        */
+       ns->blksize_shift = min_t(u8,
+                       file_inode(ns->file)->i_blkbits, 12);
 
        ns->bvec_cache = kmem_cache_create("nvmet-bvec",
                        NVMET_MAX_MPOOL_BVEC * sizeof(struct bio_vec),