diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-02-11 17:49:24 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-05-06 17:32:55 -0400 |
commit | 7f7f25e82d54870df24d415a7007fbd327da027b (patch) | |
tree | bac50bd31cd0582a873e1429271299536fb768bc /drivers/mtd | |
parent | b318891929c2750055a4002bee3e7636ca3684de (diff) |
replace checking for ->read/->aio_read presence with check in ->f_mode
Since we are about to introduce new methods (read_iter/write_iter), the
tests in a bunch of places would have to grow inconveniently. Check
once (at open() time) and store results in ->f_mode as FMODE_CAN_READ
and FMODE_CAN_WRITE resp. It might end up being a temporary measure -
once everything switches from ->aio_{read,write} to ->{read,write}_iter
it might make sense to return to open-coded checks. We'll see...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index 42e8a770e631..4f0d83648e5a 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -575,12 +575,12 @@ static int alloc_device(struct nandsim *ns) | |||
575 | cfile = filp_open(cache_file, O_CREAT | O_RDWR | O_LARGEFILE, 0600); | 575 | cfile = filp_open(cache_file, O_CREAT | O_RDWR | O_LARGEFILE, 0600); |
576 | if (IS_ERR(cfile)) | 576 | if (IS_ERR(cfile)) |
577 | return PTR_ERR(cfile); | 577 | return PTR_ERR(cfile); |
578 | if (!cfile->f_op->read && !cfile->f_op->aio_read) { | 578 | if (!(cfile->f_mode & FMODE_CAN_READ)) { |
579 | NS_ERR("alloc_device: cache file not readable\n"); | 579 | NS_ERR("alloc_device: cache file not readable\n"); |
580 | err = -EINVAL; | 580 | err = -EINVAL; |
581 | goto err_close; | 581 | goto err_close; |
582 | } | 582 | } |
583 | if (!cfile->f_op->write && !cfile->f_op->aio_write) { | 583 | if (!(cfile->f_mode & FMODE_CAN_WRITE)) { |
584 | NS_ERR("alloc_device: cache file not writeable\n"); | 584 | NS_ERR("alloc_device: cache file not writeable\n"); |
585 | err = -EINVAL; | 585 | err = -EINVAL; |
586 | goto err_close; | 586 | goto err_close; |