X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fhfsplus%2Fioctl.c;h=cccd9fceb8a7215a6d6e503bd77c4223b8f00c5a;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=e07aa096e07c3a221d39167b46c673d81a121d96;hpb=cee37fe97739d85991964371c1f3a745c00dd236;p=linux-2.6.git diff --git a/fs/hfsplus/ioctl.c b/fs/hfsplus/ioctl.c index e07aa096e..cccd9fceb 100644 --- a/fs/hfsplus/ioctl.c +++ b/fs/hfsplus/ioctl.c @@ -12,9 +12,11 @@ * hfsplus ioctls */ +#include #include #include #include +#include #include #include "hfsplus_fs.h" @@ -34,7 +36,8 @@ int hfsplus_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, flags |= EXT2_FLAG_NODUMP; /* EXT2_NODUMP_FL */ return put_user(flags, (int __user *)arg); case HFSPLUS_IOC_EXT2_SETFLAGS: { - if (IS_RDONLY(inode)) + if (IS_RDONLY(inode) || + (filp && MNT_IS_RDONLY(filp->f_vfsmnt))) return -EROFS; if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER))