15 #include <linux/capability.h>
18 #include <linux/sched.h>
19 #include <linux/xattr.h>
20 #include <asm/uaccess.h>
27 static int hfsplus_ioctl_bless(
struct file *
file,
int __user *user_flags)
60 static int hfsplus_ioctl_getflags(
struct file *file,
int __user *user_flags)
62 struct inode *inode = file->
f_path.dentry->d_inode;
64 unsigned int flags = 0;
76 static int hfsplus_ioctl_setflags(
struct file *file,
int __user *user_flags)
78 struct inode *inode = file->
f_path.dentry->d_inode;
103 goto out_unlock_inode;
110 goto out_unlock_inode;
129 mark_inode_dirty(inode);
145 return hfsplus_ioctl_getflags(file, argp);
147 return hfsplus_ioctl_setflags(file, argp);
149 return hfsplus_ioctl_bless(file, argp);
156 const void *
value,
size_t size,
int flags)
158 struct inode *inode = dentry->
d_inode;
160 hfsplus_cat_entry
entry;
177 if (!
strcmp(name,
"hfs.type")) {
182 }
else if (!
strcmp(name,
"hfs.creator")) {
202 struct inode *inode = dentry->
d_inode;
204 hfsplus_cat_entry
entry;
223 if (!
strcmp(name,
"hfs.type")) {
229 }
else if (!
strcmp(name,
"hfs.creator")) {
243 #define HFSPLUS_ATTRLIST_SIZE (sizeof("hfs.creator")+sizeof("hfs.type"))
247 struct inode *inode = dentry->
d_inode;
252 if (!buffer || !size)
256 strcpy(buffer,
"hfs.type");
257 strcpy(buffer +
sizeof(
"hfs.type"),
"hfs.creator");