diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-03-29 19:08:22 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-03-31 23:00:26 -0400 |
commit | ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48 (patch) | |
tree | ab952affafe18e604f6aaf6b13315b9435588e60 | |
parent | f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3 (diff) |
New helper - current_umask()
current->fs->umask is what most of fs_struct users are doing.
Put that into a helper function.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/inode.c | 2 | ||||
-rw-r--r-- | fs/btrfs/acl.c | 2 | ||||
-rw-r--r-- | fs/btrfs/ioctl.c | 2 | ||||
-rw-r--r-- | fs/cifs/dir.c | 4 | ||||
-rw-r--r-- | fs/cifs/inode.c | 4 | ||||
-rw-r--r-- | fs/ext2/acl.c | 2 | ||||
-rw-r--r-- | fs/ext3/acl.c | 2 | ||||
-rw-r--r-- | fs/ext4/acl.c | 2 | ||||
-rw-r--r-- | fs/fat/inode.c | 2 | ||||
-rw-r--r-- | fs/fs_struct.c | 6 | ||||
-rw-r--r-- | fs/generic_acl.c | 2 | ||||
-rw-r--r-- | fs/gfs2/acl.c | 2 | ||||
-rw-r--r-- | fs/hfsplus/options.c | 2 | ||||
-rw-r--r-- | fs/hpfs/super.c | 2 | ||||
-rw-r--r-- | fs/jffs2/acl.c | 2 | ||||
-rw-r--r-- | fs/jfs/acl.c | 2 | ||||
-rw-r--r-- | fs/namei.c | 6 | ||||
-rw-r--r-- | fs/nfs/nfs3proc.c | 6 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/acl.c | 2 | ||||
-rw-r--r-- | fs/omfs/inode.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/xattr_acl.c | 2 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_iops.c | 4 | ||||
-rw-r--r-- | include/linux/fs.h | 2 | ||||
-rw-r--r-- | ipc/mqueue.c | 2 | ||||
-rw-r--r-- | net/unix/af_unix.c | 2 |
26 files changed, 39 insertions, 31 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index 64f068540d0d..706eb5c7e2ee 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c | |||
@@ -635,7 +635,7 @@ long spufs_create(struct nameidata *nd, unsigned int flags, mode_t mode, | |||
635 | if (dentry->d_inode) | 635 | if (dentry->d_inode) |
636 | goto out_dput; | 636 | goto out_dput; |
637 | 637 | ||
638 | mode &= ~current->fs->umask; | 638 | mode &= ~current_umask(); |
639 | 639 | ||
640 | if (flags & SPU_CREATE_GANG) | 640 | if (flags & SPU_CREATE_GANG) |
641 | ret = spufs_create_gang(nd->path.dentry->d_inode, | 641 | ret = spufs_create_gang(nd->path.dentry->d_inode, |
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 1d53b62dbba5..7fdd184a528d 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c | |||
@@ -256,7 +256,7 @@ int btrfs_init_acl(struct inode *inode, struct inode *dir) | |||
256 | } | 256 | } |
257 | 257 | ||
258 | if (!acl) | 258 | if (!acl) |
259 | inode->i_mode &= ~current->fs->umask; | 259 | inode->i_mode &= ~current_umask(); |
260 | } | 260 | } |
261 | 261 | ||
262 | if (IS_POSIXACL(dir) && acl) { | 262 | if (IS_POSIXACL(dir) && acl) { |
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index bca729fc80c8..7594bec1be10 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -267,7 +267,7 @@ static noinline int btrfs_mksubvol(struct path *parent, char *name, | |||
267 | goto out_dput; | 267 | goto out_dput; |
268 | 268 | ||
269 | if (!IS_POSIXACL(parent->dentry->d_inode)) | 269 | if (!IS_POSIXACL(parent->dentry->d_inode)) |
270 | mode &= ~current->fs->umask; | 270 | mode &= ~current_umask(); |
271 | 271 | ||
272 | error = mnt_want_write(parent->mnt); | 272 | error = mnt_want_write(parent->mnt); |
273 | if (error) | 273 | if (error) |
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 2f35cccfcd8d..54dce78fbb73 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
@@ -254,7 +254,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, | |||
254 | return -ENOMEM; | 254 | return -ENOMEM; |
255 | } | 255 | } |
256 | 256 | ||
257 | mode &= ~current->fs->umask; | 257 | mode &= ~current_umask(); |
258 | if (oplockEnabled) | 258 | if (oplockEnabled) |
259 | oplock = REQ_OPLOCK; | 259 | oplock = REQ_OPLOCK; |
260 | 260 | ||
@@ -479,7 +479,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, | |||
479 | rc = -ENOMEM; | 479 | rc = -ENOMEM; |
480 | else if (pTcon->unix_ext) { | 480 | else if (pTcon->unix_ext) { |
481 | struct cifs_unix_set_info_args args = { | 481 | struct cifs_unix_set_info_args args = { |
482 | .mode = mode & ~current->fs->umask, | 482 | .mode = mode & ~current_umask(), |
483 | .ctime = NO_CHANGE_64, | 483 | .ctime = NO_CHANGE_64, |
484 | .atime = NO_CHANGE_64, | 484 | .atime = NO_CHANGE_64, |
485 | .mtime = NO_CHANGE_64, | 485 | .mtime = NO_CHANGE_64, |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index a8797cc60805..f121a80fdd6f 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -1125,7 +1125,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode) | |||
1125 | goto mkdir_out; | 1125 | goto mkdir_out; |
1126 | } | 1126 | } |
1127 | 1127 | ||
1128 | mode &= ~current->fs->umask; | 1128 | mode &= ~current_umask(); |
1129 | rc = CIFSPOSIXCreate(xid, pTcon, SMB_O_DIRECTORY | SMB_O_CREAT, | 1129 | rc = CIFSPOSIXCreate(xid, pTcon, SMB_O_DIRECTORY | SMB_O_CREAT, |
1130 | mode, NULL /* netfid */, pInfo, &oplock, | 1130 | mode, NULL /* netfid */, pInfo, &oplock, |
1131 | full_path, cifs_sb->local_nls, | 1131 | full_path, cifs_sb->local_nls, |
@@ -1204,7 +1204,7 @@ mkdir_get_info: | |||
1204 | if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2)) | 1204 | if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2)) |
1205 | direntry->d_inode->i_nlink = 2; | 1205 | direntry->d_inode->i_nlink = 2; |
1206 | 1206 | ||
1207 | mode &= ~current->fs->umask; | 1207 | mode &= ~current_umask(); |
1208 | /* must turn on setgid bit if parent dir has it */ | 1208 | /* must turn on setgid bit if parent dir has it */ |
1209 | if (inode->i_mode & S_ISGID) | 1209 | if (inode->i_mode & S_ISGID) |
1210 | mode |= S_ISGID; | 1210 | mode |= S_ISGID; |
diff --git a/fs/ext2/acl.c b/fs/ext2/acl.c index ae8c4f850b27..d46e38cb85c5 100644 --- a/fs/ext2/acl.c +++ b/fs/ext2/acl.c | |||
@@ -318,7 +318,7 @@ ext2_init_acl(struct inode *inode, struct inode *dir) | |||
318 | return PTR_ERR(acl); | 318 | return PTR_ERR(acl); |
319 | } | 319 | } |
320 | if (!acl) | 320 | if (!acl) |
321 | inode->i_mode &= ~current->fs->umask; | 321 | inode->i_mode &= ~current_umask(); |
322 | } | 322 | } |
323 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { | 323 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { |
324 | struct posix_acl *clone; | 324 | struct posix_acl *clone; |
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c index b60bb241880c..d81ef2fdb08e 100644 --- a/fs/ext3/acl.c +++ b/fs/ext3/acl.c | |||
@@ -323,7 +323,7 @@ ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) | |||
323 | return PTR_ERR(acl); | 323 | return PTR_ERR(acl); |
324 | } | 324 | } |
325 | if (!acl) | 325 | if (!acl) |
326 | inode->i_mode &= ~current->fs->umask; | 326 | inode->i_mode &= ~current_umask(); |
327 | } | 327 | } |
328 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { | 328 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { |
329 | struct posix_acl *clone; | 329 | struct posix_acl *clone; |
diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c index 694ed6fadcc8..647e0d65a284 100644 --- a/fs/ext4/acl.c +++ b/fs/ext4/acl.c | |||
@@ -323,7 +323,7 @@ ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) | |||
323 | return PTR_ERR(acl); | 323 | return PTR_ERR(acl); |
324 | } | 324 | } |
325 | if (!acl) | 325 | if (!acl) |
326 | inode->i_mode &= ~current->fs->umask; | 326 | inode->i_mode &= ~current_umask(); |
327 | } | 327 | } |
328 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { | 328 | if (test_opt(inode->i_sb, POSIX_ACL) && acl) { |
329 | struct posix_acl *clone; | 329 | struct posix_acl *clone; |
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index de0004fe6e00..ab657db4c94e 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
@@ -930,7 +930,7 @@ static int parse_options(char *options, int is_vfat, int silent, int *debug, | |||
930 | 930 | ||
931 | opts->fs_uid = current_uid(); | 931 | opts->fs_uid = current_uid(); |
932 | opts->fs_gid = current_gid(); | 932 | opts->fs_gid = current_gid(); |
933 | opts->fs_fmask = opts->fs_dmask = current->fs->umask; | 933 | opts->fs_fmask = current_umask(); |
934 | opts->allow_utime = -1; | 934 | opts->allow_utime = -1; |
935 | opts->codepage = fat_default_codepage; | 935 | opts->codepage = fat_default_codepage; |
936 | opts->iocharset = fat_default_iocharset; | 936 | opts->iocharset = fat_default_iocharset; |
diff --git a/fs/fs_struct.c b/fs/fs_struct.c index 41cff72b377b..6ac219338670 100644 --- a/fs/fs_struct.c +++ b/fs/fs_struct.c | |||
@@ -138,6 +138,12 @@ int unshare_fs_struct(void) | |||
138 | } | 138 | } |
139 | EXPORT_SYMBOL_GPL(unshare_fs_struct); | 139 | EXPORT_SYMBOL_GPL(unshare_fs_struct); |
140 | 140 | ||
141 | int current_umask(void) | ||
142 | { | ||
143 | return current->fs->umask; | ||
144 | } | ||
145 | EXPORT_SYMBOL(current_umask); | ||
146 | |||
141 | /* to be mentioned only in INIT_TASK */ | 147 | /* to be mentioned only in INIT_TASK */ |
142 | struct fs_struct init_fs = { | 148 | struct fs_struct init_fs = { |
143 | .users = 1, | 149 | .users = 1, |
diff --git a/fs/generic_acl.c b/fs/generic_acl.c index 995d63b2e747..e0b53aa7bbec 100644 --- a/fs/generic_acl.c +++ b/fs/generic_acl.c | |||
@@ -134,7 +134,7 @@ generic_acl_init(struct inode *inode, struct inode *dir, | |||
134 | mode_t mode = inode->i_mode; | 134 | mode_t mode = inode->i_mode; |
135 | int error; | 135 | int error; |
136 | 136 | ||
137 | inode->i_mode = mode & ~current->fs->umask; | 137 | inode->i_mode = mode & ~current_umask(); |
138 | if (!S_ISLNK(inode->i_mode)) | 138 | if (!S_ISLNK(inode->i_mode)) |
139 | acl = ops->getacl(dir, ACL_TYPE_DEFAULT); | 139 | acl = ops->getacl(dir, ACL_TYPE_DEFAULT); |
140 | if (acl) { | 140 | if (acl) { |
diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c index 43764f4fa763..fa881bdc3d85 100644 --- a/fs/gfs2/acl.c +++ b/fs/gfs2/acl.c | |||
@@ -215,7 +215,7 @@ int gfs2_acl_create(struct gfs2_inode *dip, struct gfs2_inode *ip) | |||
215 | if (error) | 215 | if (error) |
216 | return error; | 216 | return error; |
217 | if (!acl) { | 217 | if (!acl) { |
218 | mode &= ~current->fs->umask; | 218 | mode &= ~current_umask(); |
219 | if (mode != ip->i_inode.i_mode) | 219 | if (mode != ip->i_inode.i_mode) |
220 | error = munge_mode(ip, mode); | 220 | error = munge_mode(ip, mode); |
221 | return error; | 221 | return error; |
diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c index bab7f8d1bdfa..3fcbb0e1f6fc 100644 --- a/fs/hfsplus/options.c +++ b/fs/hfsplus/options.c | |||
@@ -48,7 +48,7 @@ void hfsplus_fill_defaults(struct hfsplus_sb_info *opts) | |||
48 | 48 | ||
49 | opts->creator = HFSPLUS_DEF_CR_TYPE; | 49 | opts->creator = HFSPLUS_DEF_CR_TYPE; |
50 | opts->type = HFSPLUS_DEF_CR_TYPE; | 50 | opts->type = HFSPLUS_DEF_CR_TYPE; |
51 | opts->umask = current->fs->umask; | 51 | opts->umask = current_umask(); |
52 | opts->uid = current_uid(); | 52 | opts->uid = current_uid(); |
53 | opts->gid = current_gid(); | 53 | opts->gid = current_gid(); |
54 | opts->part = -1; | 54 | opts->part = -1; |
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index 0d049b8919c4..c696d01bc8f7 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
@@ -477,7 +477,7 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent) | |||
477 | 477 | ||
478 | uid = current_uid(); | 478 | uid = current_uid(); |
479 | gid = current_gid(); | 479 | gid = current_gid(); |
480 | umask = current->fs->umask; | 480 | umask = current_umask(); |
481 | lowercase = 0; | 481 | lowercase = 0; |
482 | conv = CONV_BINARY; | 482 | conv = CONV_BINARY; |
483 | eas = 2; | 483 | eas = 2; |
diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c index d98713777a1b..77ccf8cb0823 100644 --- a/fs/jffs2/acl.c +++ b/fs/jffs2/acl.c | |||
@@ -336,7 +336,7 @@ int jffs2_init_acl_pre(struct inode *dir_i, struct inode *inode, int *i_mode) | |||
336 | return PTR_ERR(acl); | 336 | return PTR_ERR(acl); |
337 | 337 | ||
338 | if (!acl) { | 338 | if (!acl) { |
339 | *i_mode &= ~current->fs->umask; | 339 | *i_mode &= ~current_umask(); |
340 | } else { | 340 | } else { |
341 | if (S_ISDIR(*i_mode)) | 341 | if (S_ISDIR(*i_mode)) |
342 | jffs2_iset_acl(inode, &f->i_acl_default, acl); | 342 | jffs2_iset_acl(inode, &f->i_acl_default, acl); |
diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c index a166c1669e82..06ca1b8d2054 100644 --- a/fs/jfs/acl.c +++ b/fs/jfs/acl.c | |||
@@ -182,7 +182,7 @@ int jfs_init_acl(tid_t tid, struct inode *inode, struct inode *dir) | |||
182 | cleanup: | 182 | cleanup: |
183 | posix_acl_release(acl); | 183 | posix_acl_release(acl); |
184 | } else | 184 | } else |
185 | inode->i_mode &= ~current->fs->umask; | 185 | inode->i_mode &= ~current_umask(); |
186 | 186 | ||
187 | JFS_IP(inode)->mode2 = (JFS_IP(inode)->mode2 & 0xffff0000) | | 187 | JFS_IP(inode)->mode2 = (JFS_IP(inode)->mode2 & 0xffff0000) | |
188 | inode->i_mode; | 188 | inode->i_mode; |
diff --git a/fs/namei.c b/fs/namei.c index 4c65a6460138..964c0249444b 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1578,7 +1578,7 @@ static int __open_namei_create(struct nameidata *nd, struct path *path, | |||
1578 | struct dentry *dir = nd->path.dentry; | 1578 | struct dentry *dir = nd->path.dentry; |
1579 | 1579 | ||
1580 | if (!IS_POSIXACL(dir->d_inode)) | 1580 | if (!IS_POSIXACL(dir->d_inode)) |
1581 | mode &= ~current->fs->umask; | 1581 | mode &= ~current_umask(); |
1582 | error = security_path_mknod(&nd->path, path->dentry, mode, 0); | 1582 | error = security_path_mknod(&nd->path, path->dentry, mode, 0); |
1583 | if (error) | 1583 | if (error) |
1584 | goto out_unlock; | 1584 | goto out_unlock; |
@@ -1989,7 +1989,7 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, int, mode, | |||
1989 | goto out_unlock; | 1989 | goto out_unlock; |
1990 | } | 1990 | } |
1991 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) | 1991 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) |
1992 | mode &= ~current->fs->umask; | 1992 | mode &= ~current_umask(); |
1993 | error = may_mknod(mode); | 1993 | error = may_mknod(mode); |
1994 | if (error) | 1994 | if (error) |
1995 | goto out_dput; | 1995 | goto out_dput; |
@@ -2067,7 +2067,7 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, int, mode) | |||
2067 | goto out_unlock; | 2067 | goto out_unlock; |
2068 | 2068 | ||
2069 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) | 2069 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) |
2070 | mode &= ~current->fs->umask; | 2070 | mode &= ~current_umask(); |
2071 | error = mnt_want_write(nd.path.mnt); | 2071 | error = mnt_want_write(nd.path.mnt); |
2072 | if (error) | 2072 | if (error) |
2073 | goto out_dput; | 2073 | goto out_dput; |
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c index c55be7a7679e..e47d4400fb87 100644 --- a/fs/nfs/nfs3proc.c +++ b/fs/nfs/nfs3proc.c | |||
@@ -328,7 +328,7 @@ nfs3_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr, | |||
328 | data->arg.create.verifier[1] = current->pid; | 328 | data->arg.create.verifier[1] = current->pid; |
329 | } | 329 | } |
330 | 330 | ||
331 | sattr->ia_mode &= ~current->fs->umask; | 331 | sattr->ia_mode &= ~current_umask(); |
332 | 332 | ||
333 | for (;;) { | 333 | for (;;) { |
334 | status = nfs3_do_create(dir, dentry, data); | 334 | status = nfs3_do_create(dir, dentry, data); |
@@ -528,7 +528,7 @@ nfs3_proc_mkdir(struct inode *dir, struct dentry *dentry, struct iattr *sattr) | |||
528 | 528 | ||
529 | dprintk("NFS call mkdir %s\n", dentry->d_name.name); | 529 | dprintk("NFS call mkdir %s\n", dentry->d_name.name); |
530 | 530 | ||
531 | sattr->ia_mode &= ~current->fs->umask; | 531 | sattr->ia_mode &= ~current_umask(); |
532 | 532 | ||
533 | data = nfs3_alloc_createdata(); | 533 | data = nfs3_alloc_createdata(); |
534 | if (data == NULL) | 534 | if (data == NULL) |
@@ -639,7 +639,7 @@ nfs3_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr, | |||
639 | dprintk("NFS call mknod %s %u:%u\n", dentry->d_name.name, | 639 | dprintk("NFS call mknod %s %u:%u\n", dentry->d_name.name, |
640 | MAJOR(rdev), MINOR(rdev)); | 640 | MAJOR(rdev), MINOR(rdev)); |
641 | 641 | ||
642 | sattr->ia_mode &= ~current->fs->umask; | 642 | sattr->ia_mode &= ~current_umask(); |
643 | 643 | ||
644 | data = nfs3_alloc_createdata(); | 644 | data = nfs3_alloc_createdata(); |
645 | if (data == NULL) | 645 | if (data == NULL) |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 8dde84b988d9..bbee587dd597 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -1509,7 +1509,7 @@ nfs4_atomic_open(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | |||
1509 | attr.ia_mode = nd->intent.open.create_mode; | 1509 | attr.ia_mode = nd->intent.open.create_mode; |
1510 | attr.ia_valid = ATTR_MODE; | 1510 | attr.ia_valid = ATTR_MODE; |
1511 | if (!IS_POSIXACL(dir)) | 1511 | if (!IS_POSIXACL(dir)) |
1512 | attr.ia_mode &= ~current->fs->umask; | 1512 | attr.ia_mode &= ~current_umask(); |
1513 | } else { | 1513 | } else { |
1514 | attr.ia_valid = 0; | 1514 | attr.ia_valid = 0; |
1515 | BUG_ON(nd->intent.open.flags & O_CREAT); | 1515 | BUG_ON(nd->intent.open.flags & O_CREAT); |
diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c index 12dfb44c22e5..fbeaec762103 100644 --- a/fs/ocfs2/acl.c +++ b/fs/ocfs2/acl.c | |||
@@ -296,7 +296,7 @@ int ocfs2_init_acl(handle_t *handle, | |||
296 | return PTR_ERR(acl); | 296 | return PTR_ERR(acl); |
297 | } | 297 | } |
298 | if (!acl) | 298 | if (!acl) |
299 | inode->i_mode &= ~current->fs->umask; | 299 | inode->i_mode &= ~current_umask(); |
300 | } | 300 | } |
301 | if ((osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL) && acl) { | 301 | if ((osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL) && acl) { |
302 | struct posix_acl *clone; | 302 | struct posix_acl *clone; |
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c index 633e9dc972bb..aa6fc30772af 100644 --- a/fs/omfs/inode.c +++ b/fs/omfs/inode.c | |||
@@ -421,7 +421,7 @@ static int omfs_fill_super(struct super_block *sb, void *data, int silent) | |||
421 | 421 | ||
422 | sbi->s_uid = current_uid(); | 422 | sbi->s_uid = current_uid(); |
423 | sbi->s_gid = current_gid(); | 423 | sbi->s_gid = current_gid(); |
424 | sbi->s_dmask = sbi->s_fmask = current->fs->umask; | 424 | sbi->s_dmask = sbi->s_fmask = current_umask(); |
425 | 425 | ||
426 | if (!parse_options((char *) data, sbi)) | 426 | if (!parse_options((char *) data, sbi)) |
427 | goto end; | 427 | goto end; |
diff --git a/fs/reiserfs/xattr_acl.c b/fs/reiserfs/xattr_acl.c index d423416d93d1..c303c426fe2b 100644 --- a/fs/reiserfs/xattr_acl.c +++ b/fs/reiserfs/xattr_acl.c | |||
@@ -428,7 +428,7 @@ reiserfs_inherit_default_acl(struct reiserfs_transaction_handle *th, | |||
428 | } else { | 428 | } else { |
429 | apply_umask: | 429 | apply_umask: |
430 | /* no ACL, apply umask */ | 430 | /* no ACL, apply umask */ |
431 | inode->i_mode &= ~current->fs->umask; | 431 | inode->i_mode &= ~current_umask(); |
432 | } | 432 | } |
433 | 433 | ||
434 | return err; | 434 | return err; |
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 7aa53fefc67f..2940612e3aeb 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -227,7 +227,7 @@ xfs_vn_mknod( | |||
227 | xfs_dentry_to_name(&name, dentry); | 227 | xfs_dentry_to_name(&name, dentry); |
228 | 228 | ||
229 | if (IS_POSIXACL(dir) && !default_acl) | 229 | if (IS_POSIXACL(dir) && !default_acl) |
230 | mode &= ~current->fs->umask; | 230 | mode &= ~current_umask(); |
231 | 231 | ||
232 | switch (mode & S_IFMT) { | 232 | switch (mode & S_IFMT) { |
233 | case S_IFCHR: | 233 | case S_IFCHR: |
@@ -416,7 +416,7 @@ xfs_vn_symlink( | |||
416 | mode_t mode; | 416 | mode_t mode; |
417 | 417 | ||
418 | mode = S_IFLNK | | 418 | mode = S_IFLNK | |
419 | (irix_symlink_mode ? 0777 & ~current->fs->umask : S_IRWXUGO); | 419 | (irix_symlink_mode ? 0777 & ~current_umask() : S_IRWXUGO); |
420 | xfs_dentry_to_name(&name, dentry); | 420 | xfs_dentry_to_name(&name, dentry); |
421 | 421 | ||
422 | error = xfs_symlink(XFS_I(dir), &name, symname, mode, &cip, NULL); | 422 | error = xfs_symlink(XFS_I(dir), &name, symname, mode, &cip, NULL); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 87e7bfc5ebd7..3d7bd5447ca3 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1741,6 +1741,8 @@ extern void drop_collected_mounts(struct vfsmount *); | |||
1741 | 1741 | ||
1742 | extern int vfs_statfs(struct dentry *, struct kstatfs *); | 1742 | extern int vfs_statfs(struct dentry *, struct kstatfs *); |
1743 | 1743 | ||
1744 | extern int current_umask(void); | ||
1745 | |||
1744 | /* /sys/fs */ | 1746 | /* /sys/fs */ |
1745 | extern struct kobject *fs_kobj; | 1747 | extern struct kobject *fs_kobj; |
1746 | 1748 | ||
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index a8ddadbc7459..916785363f0f 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -602,7 +602,7 @@ static struct file *do_create(struct dentry *dir, struct dentry *dentry, | |||
602 | dentry->d_fsdata = attr; | 602 | dentry->d_fsdata = attr; |
603 | } | 603 | } |
604 | 604 | ||
605 | mode &= ~current->fs->umask; | 605 | mode &= ~current_umask(); |
606 | ret = mnt_want_write(mqueue_mnt); | 606 | ret = mnt_want_write(mqueue_mnt); |
607 | if (ret) | 607 | if (ret) |
608 | goto out; | 608 | goto out; |
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index baac91049b0e..9dcc6e7f96ec 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -832,7 +832,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) | |||
832 | * All right, let's create it. | 832 | * All right, let's create it. |
833 | */ | 833 | */ |
834 | mode = S_IFSOCK | | 834 | mode = S_IFSOCK | |
835 | (SOCK_INODE(sock)->i_mode & ~current->fs->umask); | 835 | (SOCK_INODE(sock)->i_mode & ~current_umask()); |
836 | err = mnt_want_write(nd.path.mnt); | 836 | err = mnt_want_write(nd.path.mnt); |
837 | if (err) | 837 | if (err) |
838 | goto out_mknod_dput; | 838 | goto out_mknod_dput; |