diff options
Diffstat (limited to 'fs/xfs')
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_cred.h | 6 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_globals.h | 2 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl.c | 5 | ||||
| -rw-r--r-- | fs/xfs/xfs_acl.c | 6 | ||||
| -rw-r--r-- | fs/xfs/xfs_inode.h | 2 | ||||
| -rw-r--r-- | fs/xfs/xfs_vnodeops.h | 10 |
6 files changed, 15 insertions, 16 deletions
diff --git a/fs/xfs/linux-2.6/xfs_cred.h b/fs/xfs/linux-2.6/xfs_cred.h index 652721ce0ea5..8c022cd0ad67 100644 --- a/fs/xfs/linux-2.6/xfs_cred.h +++ b/fs/xfs/linux-2.6/xfs_cred.h | |||
| @@ -23,11 +23,9 @@ | |||
| 23 | /* | 23 | /* |
| 24 | * Credentials | 24 | * Credentials |
| 25 | */ | 25 | */ |
| 26 | typedef struct cred { | 26 | typedef const struct cred cred_t; |
| 27 | /* EMPTY */ | ||
| 28 | } cred_t; | ||
| 29 | 27 | ||
| 30 | extern struct cred *sys_cred; | 28 | extern cred_t *sys_cred; |
| 31 | 29 | ||
| 32 | /* this is a hack.. (assumes sys_cred is the only cred_t in the system) */ | 30 | /* this is a hack.. (assumes sys_cred is the only cred_t in the system) */ |
| 33 | static inline int capable_cred(cred_t *cr, int cid) | 31 | static inline int capable_cred(cred_t *cr, int cid) |
diff --git a/fs/xfs/linux-2.6/xfs_globals.h b/fs/xfs/linux-2.6/xfs_globals.h index 2770b0085ee8..6eda8a3eb6f1 100644 --- a/fs/xfs/linux-2.6/xfs_globals.h +++ b/fs/xfs/linux-2.6/xfs_globals.h | |||
| @@ -19,6 +19,6 @@ | |||
| 19 | #define __XFS_GLOBALS_H__ | 19 | #define __XFS_GLOBALS_H__ |
| 20 | 20 | ||
| 21 | extern uint64_t xfs_panic_mask; /* set to cause more panics */ | 21 | extern uint64_t xfs_panic_mask; /* set to cause more panics */ |
| 22 | extern struct cred *sys_cred; | 22 | extern cred_t *sys_cred; |
| 23 | 23 | ||
| 24 | #endif /* __XFS_GLOBALS_H__ */ | 24 | #endif /* __XFS_GLOBALS_H__ */ |
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index d3438c72dcaf..281cbd5a25cf 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
| @@ -256,6 +256,7 @@ xfs_open_by_handle( | |||
| 256 | struct file *parfilp, | 256 | struct file *parfilp, |
| 257 | struct inode *parinode) | 257 | struct inode *parinode) |
| 258 | { | 258 | { |
| 259 | const struct cred *cred = current_cred(); | ||
| 259 | int error; | 260 | int error; |
| 260 | int new_fd; | 261 | int new_fd; |
| 261 | int permflag; | 262 | int permflag; |
| @@ -321,7 +322,7 @@ xfs_open_by_handle( | |||
| 321 | mntget(parfilp->f_path.mnt); | 322 | mntget(parfilp->f_path.mnt); |
| 322 | 323 | ||
| 323 | /* Create file pointer. */ | 324 | /* Create file pointer. */ |
| 324 | filp = dentry_open(dentry, parfilp->f_path.mnt, hreq.oflags); | 325 | filp = dentry_open(dentry, parfilp->f_path.mnt, hreq.oflags, cred); |
| 325 | if (IS_ERR(filp)) { | 326 | if (IS_ERR(filp)) { |
| 326 | put_unused_fd(new_fd); | 327 | put_unused_fd(new_fd); |
| 327 | return -XFS_ERROR(-PTR_ERR(filp)); | 328 | return -XFS_ERROR(-PTR_ERR(filp)); |
| @@ -1007,7 +1008,7 @@ xfs_ioctl_setattr( | |||
| 1007 | * to the file owner ID, except in cases where the | 1008 | * to the file owner ID, except in cases where the |
| 1008 | * CAP_FSETID capability is applicable. | 1009 | * CAP_FSETID capability is applicable. |
| 1009 | */ | 1010 | */ |
| 1010 | if (current->fsuid != ip->i_d.di_uid && !capable(CAP_FOWNER)) { | 1011 | if (current_fsuid() != ip->i_d.di_uid && !capable(CAP_FOWNER)) { |
| 1011 | code = XFS_ERROR(EPERM); | 1012 | code = XFS_ERROR(EPERM); |
| 1012 | goto error_return; | 1013 | goto error_return; |
| 1013 | } | 1014 | } |
diff --git a/fs/xfs/xfs_acl.c b/fs/xfs/xfs_acl.c index b2f639a1416f..91d69338d3b2 100644 --- a/fs/xfs/xfs_acl.c +++ b/fs/xfs/xfs_acl.c | |||
| @@ -366,7 +366,7 @@ xfs_acl_allow_set( | |||
| 366 | return ENOTDIR; | 366 | return ENOTDIR; |
| 367 | if (vp->i_sb->s_flags & MS_RDONLY) | 367 | if (vp->i_sb->s_flags & MS_RDONLY) |
| 368 | return EROFS; | 368 | return EROFS; |
| 369 | if (XFS_I(vp)->i_d.di_uid != current->fsuid && !capable(CAP_FOWNER)) | 369 | if (XFS_I(vp)->i_d.di_uid != current_fsuid() && !capable(CAP_FOWNER)) |
| 370 | return EPERM; | 370 | return EPERM; |
| 371 | return 0; | 371 | return 0; |
| 372 | } | 372 | } |
| @@ -413,13 +413,13 @@ xfs_acl_access( | |||
| 413 | switch (fap->acl_entry[i].ae_tag) { | 413 | switch (fap->acl_entry[i].ae_tag) { |
| 414 | case ACL_USER_OBJ: | 414 | case ACL_USER_OBJ: |
| 415 | seen_userobj = 1; | 415 | seen_userobj = 1; |
| 416 | if (fuid != current->fsuid) | 416 | if (fuid != current_fsuid()) |
| 417 | continue; | 417 | continue; |
| 418 | matched.ae_tag = ACL_USER_OBJ; | 418 | matched.ae_tag = ACL_USER_OBJ; |
| 419 | matched.ae_perm = allows; | 419 | matched.ae_perm = allows; |
| 420 | break; | 420 | break; |
| 421 | case ACL_USER: | 421 | case ACL_USER: |
| 422 | if (fap->acl_entry[i].ae_id != current->fsuid) | 422 | if (fap->acl_entry[i].ae_id != current_fsuid()) |
| 423 | continue; | 423 | continue; |
| 424 | matched.ae_tag = ACL_USER; | 424 | matched.ae_tag = ACL_USER; |
| 425 | matched.ae_perm = allows; | 425 | matched.ae_perm = allows; |
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 1420c49674d7..6be310d41daf 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h | |||
| @@ -497,7 +497,7 @@ int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, | |||
| 497 | xfs_inode_t **, xfs_daddr_t, uint); | 497 | xfs_inode_t **, xfs_daddr_t, uint); |
| 498 | int xfs_iread_extents(struct xfs_trans *, xfs_inode_t *, int); | 498 | int xfs_iread_extents(struct xfs_trans *, xfs_inode_t *, int); |
| 499 | int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, | 499 | int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, |
| 500 | xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, | 500 | xfs_nlink_t, xfs_dev_t, cred_t *, xfs_prid_t, |
| 501 | int, struct xfs_buf **, boolean_t *, xfs_inode_t **); | 501 | int, struct xfs_buf **, boolean_t *, xfs_inode_t **); |
| 502 | void xfs_dinode_from_disk(struct xfs_icdinode *, | 502 | void xfs_dinode_from_disk(struct xfs_icdinode *, |
| 503 | struct xfs_dinode_core *); | 503 | struct xfs_dinode_core *); |
diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index e932a96bec54..7b0c2ab88333 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h | |||
| @@ -16,7 +16,7 @@ struct xfs_iomap; | |||
| 16 | 16 | ||
| 17 | int xfs_open(struct xfs_inode *ip); | 17 | int xfs_open(struct xfs_inode *ip); |
| 18 | int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, | 18 | int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, |
| 19 | struct cred *credp); | 19 | cred_t *credp); |
| 20 | #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ | 20 | #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ |
| 21 | #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ | 21 | #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ |
| 22 | #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ | 22 | #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ |
| @@ -28,24 +28,24 @@ int xfs_inactive(struct xfs_inode *ip); | |||
| 28 | int xfs_lookup(struct xfs_inode *dp, struct xfs_name *name, | 28 | int xfs_lookup(struct xfs_inode *dp, struct xfs_name *name, |
| 29 | struct xfs_inode **ipp, struct xfs_name *ci_name); | 29 | struct xfs_inode **ipp, struct xfs_name *ci_name); |
| 30 | int xfs_create(struct xfs_inode *dp, struct xfs_name *name, mode_t mode, | 30 | int xfs_create(struct xfs_inode *dp, struct xfs_name *name, mode_t mode, |
| 31 | xfs_dev_t rdev, struct xfs_inode **ipp, struct cred *credp); | 31 | xfs_dev_t rdev, struct xfs_inode **ipp, cred_t *credp); |
| 32 | int xfs_remove(struct xfs_inode *dp, struct xfs_name *name, | 32 | int xfs_remove(struct xfs_inode *dp, struct xfs_name *name, |
| 33 | struct xfs_inode *ip); | 33 | struct xfs_inode *ip); |
| 34 | int xfs_link(struct xfs_inode *tdp, struct xfs_inode *sip, | 34 | int xfs_link(struct xfs_inode *tdp, struct xfs_inode *sip, |
| 35 | struct xfs_name *target_name); | 35 | struct xfs_name *target_name); |
| 36 | int xfs_mkdir(struct xfs_inode *dp, struct xfs_name *dir_name, | 36 | int xfs_mkdir(struct xfs_inode *dp, struct xfs_name *dir_name, |
| 37 | mode_t mode, struct xfs_inode **ipp, struct cred *credp); | 37 | mode_t mode, struct xfs_inode **ipp, cred_t *credp); |
| 38 | int xfs_readdir(struct xfs_inode *dp, void *dirent, size_t bufsize, | 38 | int xfs_readdir(struct xfs_inode *dp, void *dirent, size_t bufsize, |
| 39 | xfs_off_t *offset, filldir_t filldir); | 39 | xfs_off_t *offset, filldir_t filldir); |
| 40 | int xfs_symlink(struct xfs_inode *dp, struct xfs_name *link_name, | 40 | int xfs_symlink(struct xfs_inode *dp, struct xfs_name *link_name, |
| 41 | const char *target_path, mode_t mode, struct xfs_inode **ipp, | 41 | const char *target_path, mode_t mode, struct xfs_inode **ipp, |
| 42 | struct cred *credp); | 42 | cred_t *credp); |
| 43 | int xfs_inode_flush(struct xfs_inode *ip, int flags); | 43 | int xfs_inode_flush(struct xfs_inode *ip, int flags); |
| 44 | int xfs_set_dmattrs(struct xfs_inode *ip, u_int evmask, u_int16_t state); | 44 | int xfs_set_dmattrs(struct xfs_inode *ip, u_int evmask, u_int16_t state); |
| 45 | int xfs_reclaim(struct xfs_inode *ip); | 45 | int xfs_reclaim(struct xfs_inode *ip); |
| 46 | int xfs_change_file_space(struct xfs_inode *ip, int cmd, | 46 | int xfs_change_file_space(struct xfs_inode *ip, int cmd, |
| 47 | xfs_flock64_t *bf, xfs_off_t offset, | 47 | xfs_flock64_t *bf, xfs_off_t offset, |
| 48 | struct cred *credp, int attr_flags); | 48 | cred_t *credp, int attr_flags); |
| 49 | int xfs_rename(struct xfs_inode *src_dp, struct xfs_name *src_name, | 49 | int xfs_rename(struct xfs_inode *src_dp, struct xfs_name *src_name, |
| 50 | struct xfs_inode *src_ip, struct xfs_inode *target_dp, | 50 | struct xfs_inode *src_ip, struct xfs_inode *target_dp, |
| 51 | struct xfs_name *target_name, struct xfs_inode *target_ip); | 51 | struct xfs_name *target_name, struct xfs_inode *target_ip); |
