And give it a kernel-doc comment.
[akpm@linux-foundation.org: btrfs changed in linux-next]
Signed-off-by: Serge E. Hallyn <serge.hallyn@canonical.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Daniel Lezcano <daniel.lezcano@free.fr>
Acked-by: David Howells <dhowells@redhat.com>
Cc: James Morris <jmorris@namei.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 
        if (S_ISLNK(inode->i_mode))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
        if (value) {
                /* update the cached acl value */
 
 
        /* Make sure a caller can chmod. */
        if (ia_valid & ATTR_MODE) {
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
                /* Also check the setgid bit! */
                if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid :
 
        /* Check for setting the inode time. */
        if (ia_valid & (ATTR_MTIME_SET | ATTR_ATIME_SET | ATTR_TIMES_SET)) {
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
        }
 
 
        int ret;
        struct posix_acl *acl = NULL;
 
-       if (!is_owner_or_cap(dentry->d_inode))
+       if (!inode_owner_or_capable(dentry->d_inode))
                return -EPERM;
 
        if (!IS_POSIXACL(dentry->d_inode))
 
                      FS_SYNC_FL | FS_DIRSYNC_FL))
                return -EOPNOTSUPP;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EACCES;
 
        mutex_lock(&inode->i_mutex);
        if (flags & ~BTRFS_SUBVOL_RDONLY)
                return -EOPNOTSUPP;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EACCES;
 
        down_write(&root->fs_info->subvol_sem);
 
                return -EINVAL;
        if (!test_opt(dentry->d_sb, POSIX_ACL))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(dentry->d_inode))
+       if (!inode_owner_or_capable(dentry->d_inode))
                return -EPERM;
 
        if (value) {
 
                if (ret)
                        return ret;
 
-               if (!is_owner_or_cap(inode)) {
+               if (!inode_owner_or_capable(inode)) {
                        ret = -EACCES;
                        goto setflags_out;
                }
        case EXT2_IOC_GETVERSION:
                return put_user(inode->i_generation, (int __user *) arg);
        case EXT2_IOC_SETVERSION:
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
                ret = mnt_want_write(filp->f_path.mnt);
                if (ret)
                if (!test_opt(inode->i_sb, RESERVATION) ||!S_ISREG(inode->i_mode))
                        return -ENOTTY;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                if (get_user(rsv_window_size, (int __user *)arg))
 
                return -EINVAL;
        if (!test_opt(inode->i_sb, POSIX_ACL))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        if (value) {
 
                unsigned int oldflags;
                unsigned int jflag;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                if (get_user(flags, (int __user *) arg))
                __u32 generation;
                int err;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
 
                err = mnt_want_write(filp->f_path.mnt);
                if (err)
                        return err;
 
-               if (!is_owner_or_cap(inode)) {
+               if (!inode_owner_or_capable(inode)) {
                        err = -EACCES;
                        goto setrsvsz_out;
                }
 
                return -EINVAL;
        if (!test_opt(inode->i_sb, POSIX_ACL))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        if (value) {
 
                unsigned int oldflags;
                unsigned int jflag;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                if (get_user(flags, (int __user *) arg))
                __u32 generation;
                int err;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
 
                err = mnt_want_write(filp->f_path.mnt);
        case EXT4_IOC_MIGRATE:
        {
                int err;
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                err = mnt_want_write(filp->f_path.mnt);
        case EXT4_IOC_ALLOC_DA_BLKS:
        {
                int err;
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                err = mnt_want_write(filp->f_path.mnt);
 
 
        /* O_NOATIME can only be set by the owner or superuser */
        if ((arg & O_NOATIME) && !(filp->f_flags & O_NOATIME))
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EPERM;
 
        /* required for strict SunOS emulation */
 
                return -EINVAL;
        if (S_ISLNK(inode->i_mode))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
        if (value) {
                acl = posix_acl_from_xattr(value, size);
 
                goto out_drop_write;
 
        error = -EACCES;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                goto out;
 
        error = 0;
 
        if (err)
                goto out;
 
-       if (!is_owner_or_cap(inode)) {
+       if (!inode_owner_or_capable(inode)) {
                err = -EACCES;
                goto out_drop_write;
        }
 
 }
 EXPORT_SYMBOL(inode_init_owner);
 
-/*
- * return true if current either has CAP_FOWNER to the
- * file, or owns the file.
+/**
+ * inode_owner_or_capable - check current task permissions to inode
+ * @inode: inode being checked
+ *
+ * Return true if current either has CAP_FOWNER to the inode, or
+ * owns the file.
  */
-bool is_owner_or_cap(const struct inode *inode)
+bool inode_owner_or_capable(const struct inode *inode)
 {
        struct user_namespace *ns = inode_userns(inode);
 
                return true;
        return false;
 }
-EXPORT_SYMBOL(is_owner_or_cap);
+EXPORT_SYMBOL(inode_owner_or_capable);
 
 
        if (name[0] != '\0')
                return -EINVAL;
-       if (!is_owner_or_cap(dentry->d_inode))
+       if (!inode_owner_or_capable(dentry->d_inode))
                return -EPERM;
 
        if (value) {
 
                if (err)
                        return err;
 
-               if (!is_owner_or_cap(inode)) {
+               if (!inode_owner_or_capable(inode)) {
                        err = -EACCES;
                        goto setflags_out;
                }
 
        struct posix_acl *acl;
        int rc;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        /*
 
                if (IS_RDONLY(inode))
                        return -EROFS;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                err = get_user(flags, (int __user *)arg);
 
        }
 
        /* O_NOATIME can only be set by the owner or superuser */
-       if (flag & O_NOATIME && !is_owner_or_cap(inode))
+       if (flag & O_NOATIME && !inode_owner_or_capable(inode))
                return -EPERM;
 
        /*
 
        unsigned int flags, oldflags;
        int ret;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EACCES;
 
        if (get_user(flags, (int __user *)argp))
 
        if (!(osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL))
                return -EOPNOTSUPP;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        if (value) {
 
        }
 
        status = -EACCES;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                goto bail_unlock;
 
        if (!S_ISDIR(inode->i_mode))
 
                        if (err)
                                break;
 
-                       if (!is_owner_or_cap(inode)) {
+                       if (!inode_owner_or_capable(inode)) {
                                err = -EPERM;
                                goto setflags_out;
                        }
                err = put_user(inode->i_generation, (int __user *)arg);
                break;
        case REISERFS_IOC_SETVERSION:
-               if (!is_owner_or_cap(inode)) {
+               if (!inode_owner_or_capable(inode)) {
                        err = -EPERM;
                        break;
                }
 
        size_t jcreate_blocks;
        if (!reiserfs_posixacl(inode->i_sb))
                return -EOPNOTSUPP;
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        if (value) {
 
                if (IS_RDONLY(inode))
                        return -EROFS;
 
-               if (!is_owner_or_cap(inode))
+               if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
                if (get_user(flags, (int __user *) arg))
 
                 if (IS_IMMUTABLE(inode))
                        goto mnt_drop_write_and_out;
 
-               if (!is_owner_or_cap(inode)) {
+               if (!inode_owner_or_capable(inode)) {
                        error = inode_permission(inode, MAY_WRITE);
                        if (error)
                                goto mnt_drop_write_and_out;
 
                if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
                        return -EPERM;
                if (S_ISDIR(inode->i_mode) && (inode->i_mode & S_ISVTX) &&
-                   (mask & MAY_WRITE) && !is_owner_or_cap(inode))
+                   (mask & MAY_WRITE) && !inode_owner_or_capable(inode))
                        return -EPERM;
        }
 
 
  */
 extern struct user_namespace init_user_ns;
 #define inode_userns(inode) (&init_user_ns)
-extern bool is_owner_or_cap(const struct inode *inode);
+extern bool inode_owner_or_capable(const struct inode *inode);
 
 /* not quite ready to be deprecated, but... */
 extern void lock_super(struct super_block *);
 
        if (!(sbsec->flags & SE_SBLABELSUPP))
                return -EOPNOTSUPP;
 
-       if (!is_owner_or_cap(inode))
+       if (!inode_owner_or_capable(inode))
                return -EPERM;
 
        COMMON_AUDIT_DATA_INIT(&ad, FS);