Miklos Szeredi: > > When you create/remove something, lookup operation involves accessing > > inode->i_uid, i_gid, permission bits in i_mode, i_ino and i_flags. > > > > For example, ::: > > - may_open() checks inode->i_uid. > > Yup. > > > - unlink(2) and rmdir(2) check the sticky bit and inode->i_uid. > > Yes, this is perhaps the most problematic one. I do have it on my > todo list to move this into the filesystem specific permission > checking. ::: > > Are they all wrong too? > > Or i_nlink is the exception? > > Yes, if a check uses an inode attribute without refreshing it with > ->getattr() that check is wrong. And yes we do still have a couple of > those checks in less often used places.
Your two YESs made me confused. But I could understand that you are still asserting getattr is necessary even in the cases of may_open() or something, and that is a VFS lookup bug. Am I right? > What do you mean, just after fuse_main()? If the filesystem is not To modify Tomas's fs like this, { - return fuse_main(); + err = fuse_main(); + if (!err) + err = stat(mount point); } And override fuse_lowlevel_ops.lookup to customize inode members for other than root. Junjiro Okajima ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/