Merge branch 'work.whack-a-mole' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Nov 2017 06:20:02 +0000 (20:20 -1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Nov 2017 06:20:02 +0000 (20:20 -1000)
Pull mode_t whack-a-mole from Al Viro:
 "For all internal uses we want umode_t, which is arch-independent;
  mode_t (or __kernel_mode_t, for that matter) is wrong outside of
  userland ABI.

  Unfortunately, that crap keeps coming back and needs to be put down
  from time to time..."

* 'work.whack-a-mole' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  mode_t whack-a-mole: task_dump_owner()

1  2 
fs/proc/base.c
fs/proc/internal.h

diff --combined fs/proc/base.c
index 9d357b2ea6cb59af34af699cb46689464aef419e,0a17e52a3d18a95de2619584f03a30d2de0747c1..31934cb9dfc8864fd0b2ac6f1e77f8a6b55c99f7
@@@ -1,4 -1,3 +1,4 @@@
 +// SPDX-License-Identifier: GPL-2.0
  /*
   *  linux/fs/proc/base.c
   *
@@@ -1682,7 -1681,7 +1682,7 @@@ const struct inode_operations proc_pid_
  
  /* building an inode */
  
- void task_dump_owner(struct task_struct *task, mode_t mode,
+ void task_dump_owner(struct task_struct *task, umode_t mode,
                     kuid_t *ruid, kgid_t *rgid)
  {
        /* Depending on the state of dumpable compute who should own a
diff --combined fs/proc/internal.h
index 9aad373cf11d7362383c52f36dc836802626bd58,5bc75e56a8defd6a984856781db75a543080b11b..4a67188c8d74cdc4269c3d60a60b3245cd9837e9
@@@ -100,10 -100,31 +100,10 @@@ static inline struct task_struct *get_p
        return get_pid_task(proc_pid(inode), PIDTYPE_PID);
  }
  
- void task_dump_owner(struct task_struct *task, mode_t mode,
+ void task_dump_owner(struct task_struct *task, umode_t mode,
                     kuid_t *ruid, kgid_t *rgid);
  
 -static inline unsigned name_to_int(const struct qstr *qstr)
 -{
 -      const char *name = qstr->name;
 -      int len = qstr->len;
 -      unsigned n = 0;
 -
 -      if (len > 1 && *name == '0')
 -              goto out;
 -      while (len-- > 0) {
 -              unsigned c = *name++ - '0';
 -              if (c > 9)
 -                      goto out;
 -              if (n >= (~0U-9)/10)
 -                      goto out;
 -              n *= 10;
 -              n += c;
 -      }
 -      return n;
 -out:
 -      return ~0U;
 -}
 -
 +unsigned name_to_int(const struct qstr *qstr);
  /*
   * Offset of the first process in the /proc root directory..
   */