struct page *page;
        struct inode *inode = file->f_dentry->d_inode;
        struct fuse_conn *fc = get_fuse_conn(inode);
-       struct fuse_req *req = fuse_get_request(fc);
+       struct fuse_req *req;
+
+       if (is_bad_inode(inode))
+               return -EIO;
+
+       req = fuse_get_request(fc);
        if (!req)
                return -EINTR;
 
 
        struct fuse_flush_in inarg;
        int err;
 
+       if (is_bad_inode(inode))
+               return -EIO;
+
        if (fc->no_flush)
                return 0;
 
        struct fuse_fsync_in inarg;
        int err;
 
+       if (is_bad_inode(inode))
+               return -EIO;
+
        if ((!isdir && fc->no_fsync) || (isdir && fc->no_fsyncdir))
                return 0;
 
 {
        struct inode *inode = page->mapping->host;
        struct fuse_conn *fc = get_fuse_conn(inode);
-       struct fuse_req *req = fuse_get_request(fc);
-       int err = -EINTR;
+       struct fuse_req *req;
+       int err;
+
+       err = -EIO;
+       if (is_bad_inode(inode))
+               goto out;
+
+       err = -EINTR;
+       req = fuse_get_request(fc);
        if (!req)
                goto out;
 
        struct fuse_conn *fc = get_fuse_conn(inode);
        struct fuse_readpages_data data;
        int err;
+
+       if (is_bad_inode(inode))
+               return -EIO;
+
        data.file = file;
        data.inode = inode;
        data.req = fuse_get_request(fc);
        struct inode *inode = page->mapping->host;
        struct fuse_conn *fc = get_fuse_conn(inode);
        loff_t pos = page_offset(page) + offset;
-       struct fuse_req *req = fuse_get_request(fc);
+       struct fuse_req *req;
+
+       if (is_bad_inode(inode))
+               return -EIO;
+
+       req = fuse_get_request(fc);
        if (!req)
                return -EINTR;
 
        size_t nmax = write ? fc->max_write : fc->max_read;
        loff_t pos = *ppos;
        ssize_t res = 0;
-       struct fuse_req *req = fuse_get_request(fc);
+       struct fuse_req *req;
+
+       if (is_bad_inode(inode))
+               return -EIO;
+
+       req = fuse_get_request(fc);
        if (!req)
                return -EINTR;