[PATCH] bcache: fix ioctl in flash device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From 799ad1d9443a28eb640c8dbc3abe8a224f3a1292 Mon Sep 17 00:00:00 2001
From: Tang Junhui <tang.junhui.linux@xxxxxxxxx>
Date: Sat, 8 Sep 2018 03:51:30 +0800
Subject: [PATCH] bcache: fix ioctl in flash device

When doing ioctl in flash device, it will call ioctl_dev() in super.c,
then we should not to get cached device since flash only device has
no backend device. This patch just move the jugement dc->io_disable
to cached_dev_ioctl() to make ioctl in flash device correctly.

Signed-off-by: Tang Junhui <tang.junhui.linux@xxxxxxxxx>
---
 drivers/md/bcache/request.c | 3 +++
 drivers/md/bcache/super.c   | 4 ----
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c
index 7dbe8b6..bafc85e 100644
--- a/drivers/md/bcache/request.c
+++ b/drivers/md/bcache/request.c
@@ -1212,6 +1212,9 @@ static int cached_dev_ioctl(struct bcache_device
*d, fmode_t mode,
      unsigned int cmd, unsigned long arg)
 {
  struct cached_dev *dc = container_of(d, struct cached_dev, disk);
+
+ if (dc->io_disable)
+ return -EIO;
  return __blkdev_driver_ioctl(dc->bdev, mode, cmd, arg);
 }

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 55a3764..ced830e 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -636,10 +636,6 @@ static int ioctl_dev(struct block_device *b, fmode_t mode,
       unsigned int cmd, unsigned long arg)
 {
  struct bcache_device *d = b->bd_disk->private_data;
- struct cached_dev *dc = container_of(d, struct cached_dev, disk);
-
- if (dc->io_disable)
- return -EIO;

  return d->ioctl(d, mode, cmd, arg);
 }
-- 
1.8.3.1



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux