+2004-01-29 Miklos Szeredi <mszeredi@inf.bme.hu>
+
+ * Properly check if the inode exists in fuse_invalidate
+
2004-01-27 Miklos Szeredi <mszeredi@inf.bme.hu>
* Added -q option for fusermount
return 0;
}
+#ifdef KERNEL_2_6
static int fuse_invalidate(struct fuse_conn *fc, struct fuse_user_header *uh)
{
- struct inode *inode = iget(fc->sb, uh->ino);
+ struct inode *inode = ilookup(fc->sb, uh->ino);
if (!inode)
return -ENOENT;
-
-#ifdef KERNEL_2_6
invalidate_inode_pages(inode->i_mapping);
-#else
- invalidate_inode_pages(inode);
-#endif
-
iput(inode);
return 0;
}
+#else
+static int fuse_invalidate(struct fuse_conn *fc, struct fuse_user_header *uh)
+{
+ struct inode *inode = iget(fc->sb, uh->ino);
+ int err = -ENOENT;
+ if(inode) {
+ if(inode->u.generic_ip) {
+ invalidate_inode_pages(inode);
+ err = 0;
+ }
+ iput(inode);
+ }
+ return err;
+}
+#endif
static int fuse_user_request(struct fuse_conn *fc, const char *buf,
size_t nbytes)