*flags = IATTR_XID
| (IS_BARRIER(in) ? IATTR_BARRIER : 0)
| (IS_IUNLINK(in) ? IATTR_IUNLINK : 0)
- | (IS_IMMUTABLE(in) ? IATTR_IMMUTABLE : 0);
+ | (IS_IMMUTABLE(in) ? IATTR_IMMUTABLE : 0);
*mask = IATTR_IUNLINK | IATTR_IMMUTABLE;
if (S_ISDIR(in->i_mode))
if (in->i_sb->s_magic == PROC_SUPER_MAGIC) {
struct proc_dir_entry *entry = PROC_I(in)->pde;
-
+
// check for specific inodes ?
if (entry)
*mask |= IATTR_FLAGS;
if (entry)
- *flags |= (entry->vx_flags & IATTR_FLAGS);
+ *flags |= (entry->vx_flags & IATTR_FLAGS);
else
*flags |= (PROC_I(in)->vx_flags & IATTR_FLAGS);
}
if (entry)
entry->vx_flags = iflags;
}
-
+
if (*mask & (IATTR_BARRIER | IATTR_IUNLINK | IATTR_IMMUTABLE)) {
struct iattr attr;
error = inode_setattr(in, &attr);
}
}
-
+
mark_inode_dirty(in);
up(&in->i_sem);
return 0;
}
-#ifdef CONFIG_VSERVER_LEGACY
+#ifdef CONFIG_VSERVER_LEGACY
#include <linux/proc_fs.h>
#define PROC_DYNAMIC_FIRST 0xF0000000UL
return -ENOTTY;
entry = PROC_I(inode)->pde;
+ if (!entry)
+ return -ENOTTY;
switch(cmd) {
case FIOC_GETXFLG: {