X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fjfs%2Fioctl.c;h=3c8663bea98ca3bf373f3ea83260b33d67548f3a;hb=39655164405940d4818224a085e35420e2f97aed;hp=ed814b1ff4d9b1908d4c7c0418f5c7a975392db1;hpb=f1ff0fdc353ca00ff43b7b039944b8070da22242;p=linux-2.6 diff --git a/fs/jfs/ioctl.c b/fs/jfs/ioctl.c index ed814b1ff4..3c8663bea9 100644 --- a/fs/jfs/ioctl.c +++ b/fs/jfs/ioctl.c @@ -59,6 +59,7 @@ int jfs_ioctl(struct inode * inode, struct file * filp, unsigned int cmd, switch (cmd) { case JFS_IOC_GETFLAGS: + jfs_get_inode_flags(jfs_inode); flags = jfs_inode->mode2 & JFS_FL_USER_VISIBLE; flags = jfs_map_ext2(flags, 0); return put_user(flags, (int __user *) arg); @@ -68,7 +69,7 @@ int jfs_ioctl(struct inode * inode, struct file * filp, unsigned int cmd, if (IS_RDONLY(inode)) return -EROFS; - if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER)) + if (!is_owner_or_cap(inode)) return -EACCES; if (get_user(flags, (int __user *) arg)) @@ -78,6 +79,7 @@ int jfs_ioctl(struct inode * inode, struct file * filp, unsigned int cmd, if (!S_ISDIR(inode->i_mode)) flags &= ~JFS_DIRSYNC_FL; + jfs_get_inode_flags(jfs_inode); oldflags = jfs_inode->mode2; /*