> On Sep 21, 2007 14:23 +0200, Miklos Szeredi wrote: > > @@ -1212,7 +1212,8 @@ struct inode_operations { > > - int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); > > + int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *, > > + struct file *file); > > It's not much of an inode operation anymore if you need to pass a file > to it... Since the attributes are really part of the inode and not > the file, this seems like a bit of a hack.
Well, the data is part of the inode and not the file as well. So why are read/write special? OK, I realize now, that with special files (device, fifo) the I/O is actually on the open file and _not_ on the inode. So the above is only true for regular files. And so it really would make sense to make a separate fgetattr() file operation, so we only get it for regular files and not for special files. Because for the specail file case it really doesn't make sense to pass the file pointer to the filesystem, since the filesystem knows nothing about the open file. Miklos - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html