@@ -1131,9 +1131,6 @@ static ssize_t fuse_perform_write(struct kiocb *iocb,
1131
1131
int err = 0 ;
1132
1132
ssize_t res = 0 ;
1133
1133
1134
- if (is_bad_inode (inode ))
1135
- return - EIO ;
1136
-
1137
1134
if (inode -> i_size < pos + iov_iter_count (ii ))
1138
1135
set_bit (FUSE_I_SIZE_UNSTABLE , & fi -> state );
1139
1136
@@ -1422,9 +1419,6 @@ static ssize_t __fuse_direct_read(struct fuse_io_priv *io,
1422
1419
ssize_t res ;
1423
1420
struct inode * inode = file_inode (io -> iocb -> ki_filp );
1424
1421
1425
- if (is_bad_inode (inode ))
1426
- return - EIO ;
1427
-
1428
1422
res = fuse_direct_io (io , iter , ppos , 0 );
1429
1423
1430
1424
fuse_invalidate_atime (inode );
@@ -1439,11 +1433,6 @@ static ssize_t fuse_direct_read_iter(struct kiocb *iocb, struct iov_iter *to)
1439
1433
ssize_t res ;
1440
1434
1441
1435
if (!is_sync_kiocb (iocb ) && iocb -> ki_flags & IOCB_DIRECT ) {
1442
- struct file * file = iocb -> ki_filp ;
1443
-
1444
- if (is_bad_inode (file_inode (file )))
1445
- return - EIO ;
1446
-
1447
1436
res = fuse_direct_IO (iocb , to );
1448
1437
} else {
1449
1438
struct fuse_io_priv io = FUSE_IO_PRIV_SYNC (iocb );
@@ -1460,9 +1449,6 @@ static ssize_t fuse_direct_write_iter(struct kiocb *iocb, struct iov_iter *from)
1460
1449
struct fuse_io_priv io = FUSE_IO_PRIV_SYNC (iocb );
1461
1450
ssize_t res ;
1462
1451
1463
- if (is_bad_inode (inode ))
1464
- return - EIO ;
1465
-
1466
1452
/* Don't allow parallel writes to the same file */
1467
1453
inode_lock (inode );
1468
1454
res = generic_write_checks (iocb , from );
@@ -1484,7 +1470,11 @@ static ssize_t fuse_direct_write_iter(struct kiocb *iocb, struct iov_iter *from)
1484
1470
1485
1471
static ssize_t fuse_file_read_iter (struct kiocb * iocb , struct iov_iter * to )
1486
1472
{
1487
- struct fuse_file * ff = iocb -> ki_filp -> private_data ;
1473
+ struct file * file = iocb -> ki_filp ;
1474
+ struct fuse_file * ff = file -> private_data ;
1475
+
1476
+ if (is_bad_inode (file_inode (file )))
1477
+ return - EIO ;
1488
1478
1489
1479
if (!(ff -> open_flags & FOPEN_DIRECT_IO ))
1490
1480
return fuse_cache_read_iter (iocb , to );
@@ -1494,7 +1484,11 @@ static ssize_t fuse_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
1494
1484
1495
1485
static ssize_t fuse_file_write_iter (struct kiocb * iocb , struct iov_iter * from )
1496
1486
{
1497
- struct fuse_file * ff = iocb -> ki_filp -> private_data ;
1487
+ struct file * file = iocb -> ki_filp ;
1488
+ struct fuse_file * ff = file -> private_data ;
1489
+
1490
+ if (is_bad_inode (file_inode (file )))
1491
+ return - EIO ;
1498
1492
1499
1493
if (!(ff -> open_flags & FOPEN_DIRECT_IO ))
1500
1494
return fuse_cache_write_iter (iocb , from );
0 commit comments