Loading fs/btrfs/ioctl.c +32 −0 Original line number Diff line number Diff line Loading @@ -338,6 +338,38 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg) return ret; } /* * Translate btrfs internal inode flags to xflags as expected by the * FS_IOC_FSGETXATT ioctl. Filter only the supported ones, unknown flags are * silently dropped. */ static unsigned int btrfs_inode_flags_to_xflags(unsigned int flags) { unsigned int xflags = 0; if (flags & BTRFS_INODE_APPEND) xflags |= FS_XFLAG_APPEND; if (flags & BTRFS_INODE_IMMUTABLE) xflags |= FS_XFLAG_IMMUTABLE; if (flags & BTRFS_INODE_NOATIME) xflags |= FS_XFLAG_NOATIME; if (flags & BTRFS_INODE_NODUMP) xflags |= FS_XFLAG_NODUMP; if (flags & BTRFS_INODE_SYNC) xflags |= FS_XFLAG_SYNC; return xflags; } /* Check if @flags are a supported and valid set of FS_XFLAGS_* flags */ static int check_xflags(unsigned int flags) { if (flags & ~(FS_XFLAG_APPEND | FS_XFLAG_IMMUTABLE | FS_XFLAG_NOATIME | FS_XFLAG_NODUMP | FS_XFLAG_SYNC)) return -EOPNOTSUPP; return 0; } static int btrfs_ioctl_getversion(struct file *file, int __user *arg) { struct inode *inode = file_inode(file); Loading Loading
fs/btrfs/ioctl.c +32 −0 Original line number Diff line number Diff line Loading @@ -338,6 +338,38 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg) return ret; } /* * Translate btrfs internal inode flags to xflags as expected by the * FS_IOC_FSGETXATT ioctl. Filter only the supported ones, unknown flags are * silently dropped. */ static unsigned int btrfs_inode_flags_to_xflags(unsigned int flags) { unsigned int xflags = 0; if (flags & BTRFS_INODE_APPEND) xflags |= FS_XFLAG_APPEND; if (flags & BTRFS_INODE_IMMUTABLE) xflags |= FS_XFLAG_IMMUTABLE; if (flags & BTRFS_INODE_NOATIME) xflags |= FS_XFLAG_NOATIME; if (flags & BTRFS_INODE_NODUMP) xflags |= FS_XFLAG_NODUMP; if (flags & BTRFS_INODE_SYNC) xflags |= FS_XFLAG_SYNC; return xflags; } /* Check if @flags are a supported and valid set of FS_XFLAGS_* flags */ static int check_xflags(unsigned int flags) { if (flags & ~(FS_XFLAG_APPEND | FS_XFLAG_IMMUTABLE | FS_XFLAG_NOATIME | FS_XFLAG_NODUMP | FS_XFLAG_SYNC)) return -EOPNOTSUPP; return 0; } static int btrfs_ioctl_getversion(struct file *file, int __user *arg) { struct inode *inode = file_inode(file); Loading