Lines Matching refs:fa
508 static int ovl_security_fileattr(struct path *realpath, struct fileattr *fa, in ovl_security_fileattr() argument
520 cmd = fa->fsx_valid ? FS_IOC_FSSETXATTR : FS_IOC_SETFLAGS; in ovl_security_fileattr()
522 cmd = fa->fsx_valid ? FS_IOC_FSGETXATTR : FS_IOC_GETFLAGS; in ovl_security_fileattr()
530 int ovl_real_fileattr_set(struct path *realpath, struct fileattr *fa) in ovl_real_fileattr_set() argument
534 err = ovl_security_fileattr(realpath, fa, true); in ovl_real_fileattr_set()
538 return vfs_fileattr_set(&init_user_ns, realpath->dentry, fa); in ovl_real_fileattr_set()
542 struct dentry *dentry, struct fileattr *fa) in ovl_fileattr_set() argument
566 err = ovl_set_protattr(inode, upperpath.dentry, fa); in ovl_fileattr_set()
568 err = ovl_real_fileattr_set(&upperpath, fa); in ovl_fileattr_set()
590 static void ovl_fileattr_prot_flags(struct inode *inode, struct fileattr *fa) in ovl_fileattr_prot_flags() argument
596 fa->flags |= FS_APPEND_FL; in ovl_fileattr_prot_flags()
597 fa->fsx_xflags |= FS_XFLAG_APPEND; in ovl_fileattr_prot_flags()
600 fa->flags |= FS_IMMUTABLE_FL; in ovl_fileattr_prot_flags()
601 fa->fsx_xflags |= FS_XFLAG_IMMUTABLE; in ovl_fileattr_prot_flags()
605 int ovl_real_fileattr_get(struct path *realpath, struct fileattr *fa) in ovl_real_fileattr_get() argument
609 err = ovl_security_fileattr(realpath, fa, false); in ovl_real_fileattr_get()
613 err = vfs_fileattr_get(realpath->dentry, fa); in ovl_real_fileattr_get()
619 int ovl_fileattr_get(struct dentry *dentry, struct fileattr *fa) in ovl_fileattr_get() argument
629 err = ovl_real_fileattr_get(&realpath, fa); in ovl_fileattr_get()
630 ovl_fileattr_prot_flags(inode, fa); in ovl_fileattr_get()