git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
fs
/
hfsplus
/
ioctl.c
diff --git
a/fs/hfsplus/ioctl.c
b/fs/hfsplus/ioctl.c
index
e07aa09
..
cccd9fc
100644
(file)
--- a/
fs/hfsplus/ioctl.c
+++ b/
fs/hfsplus/ioctl.c
@@
-12,9
+12,11
@@
* hfsplus ioctls
*/
* hfsplus ioctls
*/
+#include <linux/capability.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/xattr.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/xattr.h>
+#include <linux/mount.h>
#include <asm/uaccess.h>
#include "hfsplus_fs.h"
#include <asm/uaccess.h>
#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: {
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))
return -EROFS;
if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER))