{
int ret = -EACCES;
- if (vx_check(inode->i_xid, VX_IDENT))
+ /* devpts is xid tagged */
+ if (vx_check((xid_t)inode->i_tag, VS_WATCH_P|VS_IDENT))
ret = generic_permission(inode, mask, NULL);
return ret;
}
static int devpts_filter(struct dentry *de)
{
- return vx_check(de->d_inode->i_xid, VX_IDENT);
+ /* devpts is xid tagged */
+ return vx_check((xid_t)de->d_inode->i_tag, VS_WATCH_P|VS_IDENT);
}
static int devpts_readdir(struct file * filp, void * dirent, filldir_t filldir)
inode->i_ino = 1;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_blocks = 0;
- inode->i_blksize = 1024;
inode->i_uid = inode->i_gid = 0;
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
inode->i_op = &simple_dir_inode_operations;
inode->i_fop = &devpts_dir_operations;
inode->i_nlink = 2;
- inode->i_xid = vx_current_xid();
+ /* devpts is xid tagged */
+ inode->i_tag = (tag_t)vx_current_xid();
devpts_root = s->s_root = d_alloc_root(inode);
if (s->s_root)
return -ENOMEM;
}
-static struct super_block *devpts_get_sb(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
+static int devpts_get_sb(struct file_system_type *fs_type,
+ int flags, const char *dev_name, void *data, struct vfsmount *mnt)
{
- return get_sb_single(fs_type, flags, data, devpts_fill_super);
+ return get_sb_single(fs_type, flags, data, devpts_fill_super, mnt);
}
static struct file_system_type devpts_fs_type = {
return -ENOMEM;
inode->i_ino = number+2;
- inode->i_blksize = 1024;
inode->i_uid = config.setuid ? config.uid : current->fsuid;
inode->i_gid = config.setgid ? config.gid : current->fsgid;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
init_special_inode(inode, S_IFCHR|config.mode, device);
- inode->i_xid = vx_current_xid();
+ /* devpts is xid tagged */
+ inode->i_tag = (tag_t)vx_current_xid();
inode->i_op = &devpts_file_inode_operations;
- inode->u.generic_ip = tty;
+ inode->i_private = tty;
dentry = get_node(number);
if (!IS_ERR(dentry) && !dentry->d_inode)
tty = NULL;
if (!IS_ERR(dentry)) {
if (dentry->d_inode)
- tty = dentry->d_inode->u.generic_ip;
+ tty = dentry->d_inode->i_private;
dput(dentry);
}