return 0;
 }
 
+static inline int invalid_nodeid(u64 nodeid)
+{
+       return !nodeid || nodeid == FUSE_ROOT_ID;
+}
+
 static struct dentry_operations fuse_dentry_operations = {
        .d_revalidate   = fuse_dentry_revalidate,
 };
        fuse_lookup_init(req, dir, entry, &outarg);
        request_send(fc, req);
        err = req->out.h.error;
-       if (!err && (!outarg.nodeid || outarg.nodeid == FUSE_ROOT_ID))
+       if (!err && invalid_nodeid(outarg.nodeid))
                err = -EIO;
        if (!err) {
                inode = fuse_iget(dir->i_sb, outarg.nodeid, outarg.generation,
        }
 
        err = -EIO;
-       if (!S_ISREG(outentry.attr.mode))
+       if (!S_ISREG(outentry.attr.mode) || invalid_nodeid(outentry.nodeid))
                goto out_free_ff;
 
        inode = fuse_iget(dir->i_sb, outentry.nodeid, outentry.generation,
                fuse_put_request(fc, req);
                return err;
        }
-       if (!outarg.nodeid || outarg.nodeid == FUSE_ROOT_ID) {
+       if (invalid_nodeid(outarg.nodeid)) {
                fuse_put_request(fc, req);
                return -EIO;
        }