From e5a5abca5637d59187475bfc2e0ef45e2af41420 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sat, 28 Sep 2013 18:15:14 +0000 Subject: [PATCH] Revert "LU-1346 libcfs: replace CFS_CAP_XXX with kernel definition" Shadow raised pretty valid points about compatibility and wire protocol changes caused by this patch i LU-1346 comments, so reverting This reverts commit b22fb817507ff52c02de38435fe90d758e852105 Change-Id: Ia0fcd279d17c9f996b2726e4bd5f115d1c629f49 Reviewed-on: http://review.whamcloud.com/7798 Reviewed-by: Oleg Drokin Tested-by: Oleg Drokin --- contrib/scripts/libcfs_cleanup.sed | 21 ----------- libcfs/include/libcfs/curproc.h | 37 +++++++++++++----- libcfs/include/libcfs/darwin/kp30.h | 10 ----- libcfs/include/libcfs/posix/libcfs.h | 10 ----- libcfs/include/libcfs/winnt/kp30.h | 9 ----- libcfs/libcfs/darwin/darwin-curproc.c | 2 +- libcfs/libcfs/linux/linux-module.c | 4 +- libcfs/libcfs/lwt.c | 10 ++--- libcfs/libcfs/winnt/winnt-module.c | 4 +- lustre/include/lustre_sec.h | 4 +- lustre/liblustre/super.c | 38 +++++++++---------- lustre/llite/dir.c | 50 ++++++++++++------------- lustre/llite/file.c | 10 ++--- lustre/llite/llite_lib.c | 2 +- lustre/llite/xattr.c | 26 ++++++------- lustre/mdd/mdd_dir.c | 2 +- lustre/mdd/mdd_object.c | 18 ++++----- lustre/mdd/mdd_permission.c | 6 +-- lustre/mdt/mdt_open.c | 2 +- lustre/mdt/mdt_reint.c | 4 +- lustre/obdclass/linux/linux-module.c | 18 ++++----- lustre/obdclass/llog.c | 42 ++++++++++----------- lustre/obdclass/llog_obd.c | 12 +++--- lustre/obdclass/obdo.c | 4 +- lustre/obdecho/echo_client.c | 70 +++++++++++++++++------------------ lustre/osc/osc_cache.c | 4 +- lustre/osc/osc_io.c | 8 ++-- lustre/osc/osc_page.c | 2 +- 28 files changed, 199 insertions(+), 230 deletions(-) diff --git a/contrib/scripts/libcfs_cleanup.sed b/contrib/scripts/libcfs_cleanup.sed index bcc7834..556892c 100644 --- a/contrib/scripts/libcfs_cleanup.sed +++ b/contrib/scripts/libcfs_cleanup.sed @@ -631,24 +631,3 @@ s/\bcfs_atomic_sub_return\b/atomic_sub_return/g /#[ \t]*define[ \t]*\batomic_sub_return\b *( *\w* *, *\w* *)[ \t]*\batomic_sub_return\b *( *\w* *, *\w* *)/d s/\bCFS_ATOMIC_INIT\b/ATOMIC_INIT/g /#[ \t]*define[ \t]*\bATOMIC_INIT\b *( *\w* *)[ \t]*\bATOMIC_INIT\b *( *\w* *)/d - -################################################################################ -# CFS_CAP_XXX -s/\bCFS_CAP_CHOWN\b/CAP_CHOWN/g -/#[ \t]*define[ \t]*\bCAP_CHOWN\b[ \t]*\bCAP_CHOWN\b/d -s/\bCFS_CAP_DAC_OVERRIDE\b/CAP_DAC_OVERRIDE/g -/#[ \t]*define[ \t]*\bCAP_DAC_OVERRIDE\b[ \t]*\bCAP_DAC_OVERRIDE\b/d -s/\bCFS_CAP_DAC_READ_SEARCH\b/CAP_DAC_READ_SEARCH/g -/#[ \t]*define[ \t]*\bCAP_DAC_READ_SEARCH\b[ \t]*\bCAP_DAC_READ_SEARCH\b/d -s/\bCFS_CAP_FOWNER\b/CAP_FOWNER/g -/#[ \t]*define[ \t]*\bCAP_FOWNER\b[ \t]*\bCAP_FOWNER\b/d -s/\bCFS_CAP_FSETID\b/CAP_FSETID/g -/#[ \t]*define[ \t]*\bCAP_FSETID\b[ \t]*\bCAP_FSETID\b/d -s/\bCFS_CAP_LINUX_IMMUTABLE\b/CAP_LINUX_IMMUTABLE/g -/#[ \t]*define[ \t]*\bCAP_LINUX_IMMUTABLE\b[ \t]*\bCAP_LINUX_IMMUTABLE\b/d -s/\bCFS_CAP_SYS_ADMIN\b/CAP_SYS_ADMIN/g -/#[ \t]*define[ \t]*\bCAP_SYS_ADMIN\b[ \t]*\bCAP_SYS_ADMIN\b/d -s/\bCFS_CAP_SYS_BOOT\b/CAP_SYS_BOOT/g -/#[ \t]*define[ \t]*\bCAP_SYS_BOOT\b[ \t]*\bCAP_SYS_BOOT\b/d -s/\bCFS_CAP_SYS_RESOURCE\b/CAP_SYS_RESOURCE/g -/#[ \t]*define[ \t]*\bCAP_SYS_RESOURCE\b[ \t]*\bCAP_SYS_RESOURCE\b/d diff --git a/libcfs/include/libcfs/curproc.h b/libcfs/include/libcfs/curproc.h index 85eb623..106cbc8 100644 --- a/libcfs/include/libcfs/curproc.h +++ b/libcfs/include/libcfs/curproc.h @@ -47,15 +47,25 @@ int cfs_get_environ(const char *key, char *value, int *val_len); typedef __u32 cfs_cap_t; -#define CFS_CAP_FS_MASK ((1 << CAP_CHOWN) | \ - (1 << CAP_DAC_OVERRIDE) | \ - (1 << CAP_DAC_READ_SEARCH) | \ - (1 << CAP_FOWNER) | \ - (1 << CAP_FSETID ) | \ - (1 << CAP_LINUX_IMMUTABLE) | \ - (1 << CAP_SYS_ADMIN) | \ - (1 << CAP_SYS_BOOT) | \ - (1 << CAP_SYS_RESOURCE)) +#define CFS_CAP_CHOWN 0 +#define CFS_CAP_DAC_OVERRIDE 1 +#define CFS_CAP_DAC_READ_SEARCH 2 +#define CFS_CAP_FOWNER 3 +#define CFS_CAP_FSETID 4 +#define CFS_CAP_LINUX_IMMUTABLE 9 +#define CFS_CAP_SYS_ADMIN 21 +#define CFS_CAP_SYS_BOOT 23 +#define CFS_CAP_SYS_RESOURCE 24 + +#define CFS_CAP_FS_MASK ((1 << CFS_CAP_CHOWN) | \ + (1 << CFS_CAP_DAC_OVERRIDE) | \ + (1 << CFS_CAP_DAC_READ_SEARCH) | \ + (1 << CFS_CAP_FOWNER) | \ + (1 << CFS_CAP_FSETID ) | \ + (1 << CFS_CAP_LINUX_IMMUTABLE) | \ + (1 << CFS_CAP_SYS_ADMIN) | \ + (1 << CFS_CAP_SYS_BOOT) | \ + (1 << CFS_CAP_SYS_RESOURCE)) void cfs_cap_raise(cfs_cap_t cap); void cfs_cap_lower(cfs_cap_t cap); @@ -66,3 +76,12 @@ int cfs_capable(cfs_cap_t cap); /* __LIBCFS_CURPROC_H__ */ #endif +/* + * Local variables: + * c-indentation-style: "K&R" + * c-basic-offset: 8 + * tab-width: 8 + * fill-column: 80 + * scroll-step: 1 + * End: + */ diff --git a/libcfs/include/libcfs/darwin/kp30.h b/libcfs/include/libcfs/darwin/kp30.h index 2d44fd5..85eec6b 100644 --- a/libcfs/include/libcfs/darwin/kp30.h +++ b/libcfs/include/libcfs/darwin/kp30.h @@ -54,16 +54,6 @@ #error libcfs_register_panic_notifier() missing #error libcfs_unregister_panic_notifier() missing -#define CAP_CHOWN 0 -#define CAP_DAC_OVERRIDE 1 -#define CAP_DAC_READ_SEARCH 2 -#define CAP_FOWNER 3 -#define CAP_FSETID 4 -#define CAP_LINUX_IMMUTABLE 9 -#define CAP_SYS_ADMIN 21 -#define CAP_SYS_BOOT 23 -#define CAP_SYS_RESOURCE 24 - /* --------------------------------------------------------------------- */ #define num_online_cpus() cfs_online_cpus() diff --git a/libcfs/include/libcfs/posix/libcfs.h b/libcfs/include/libcfs/posix/libcfs.h index 27bef05..e6d91bc 100644 --- a/libcfs/include/libcfs/posix/libcfs.h +++ b/libcfs/include/libcfs/posix/libcfs.h @@ -214,16 +214,6 @@ typedef unsigned long long cfs_cycles_t; #define EXIT_NESTING do {;} while (0) #define __current_nesting_level() (0) -#define CAP_CHOWN 0 -#define CAP_DAC_OVERRIDE 1 -#define CAP_DAC_READ_SEARCH 2 -#define CAP_FOWNER 3 -#define CAP_FSETID 4 -#define CAP_LINUX_IMMUTABLE 9 -#define CAP_SYS_ADMIN 21 -#define CAP_SYS_BOOT 23 -#define CAP_SYS_RESOURCE 24 - /** * Platform specific declarations for cfs_curproc API (libcfs/curproc.h) * diff --git a/libcfs/include/libcfs/winnt/kp30.h b/libcfs/include/libcfs/winnt/kp30.h index bdb16dc..a515b63 100644 --- a/libcfs/include/libcfs/winnt/kp30.h +++ b/libcfs/include/libcfs/winnt/kp30.h @@ -42,15 +42,6 @@ #define CFS_SYSFS_MODULE_PARM 0 /* no sysfs access to module parameters */ -#define CAP_CHOWN 0 -#define CAP_DAC_OVERRIDE 1 -#define CAP_DAC_READ_SEARCH 2 -#define CAP_FOWNER 3 -#define CAP_FSETID 4 -#define CAP_LINUX_IMMUTABLE 9 -#define CAP_SYS_ADMIN 21 -#define CAP_SYS_BOOT 23 -#define CAP_SYS_RESOURCE 24 /* winnt panic */ void libcfs_panic(char *msg); diff --git a/libcfs/libcfs/darwin/darwin-curproc.c b/libcfs/libcfs/darwin/darwin-curproc.c index 0f0be43..c2ced51 100644 --- a/libcfs/libcfs/darwin/darwin-curproc.c +++ b/libcfs/libcfs/darwin/darwin-curproc.c @@ -160,7 +160,7 @@ void cfs_curproc_cap_unpack(cfs_cap_t cap) { int cfs_capable(cfs_cap_t cap) { - return cap == CAP_SYS_BOOT ? is_suser(): is_suser1(); + return cap == CFS_CAP_SYS_BOOT ? is_suser(): is_suser1(); } /* diff --git a/libcfs/libcfs/linux/linux-module.c b/libcfs/libcfs/linux/linux-module.c index 127b1d3..1294537 100644 --- a/libcfs/libcfs/linux/linux-module.c +++ b/libcfs/libcfs/linux/linux-module.c @@ -151,12 +151,12 @@ static long libcfs_ioctl(struct file *file, /* Handle platform-dependent IOC requests */ switch (cmd) { case IOC_LIBCFS_PANIC: - if (!cfs_capable(CAP_SYS_BOOT)) + if (!cfs_capable(CFS_CAP_SYS_BOOT)) return (-EPERM); panic("debugctl-invoked panic"); return (0); case IOC_LIBCFS_MEMHOG: - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) return -EPERM; /* go thought */ } diff --git a/libcfs/libcfs/lwt.c b/libcfs/libcfs/lwt.c index 83bea3f..48bf56b 100644 --- a/libcfs/libcfs/lwt.c +++ b/libcfs/libcfs/lwt.c @@ -63,8 +63,8 @@ lwt_lookup_string (int *size, char *knl_ptr, * trying to determine the string length, so we're trusting our * caller... */ - if (!cfs_capable(CAP_SYS_ADMIN)) - return (-EPERM); + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + return (-EPERM); if (user_size > 0 && maxsize > user_size) @@ -94,8 +94,8 @@ lwt_control (int enable, int clear) int i; int j; - if (!cfs_capable(CAP_SYS_ADMIN)) - return (-EPERM); + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + return (-EPERM); if (!enable) { LWT_EVENT(0,0,0,0); @@ -141,7 +141,7 @@ lwt_snapshot(cfs_cycles_t *now, int *ncpu, int *total_size, int i; int j; - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) return (-EPERM); *ncpu = num_online_cpus(); diff --git a/libcfs/libcfs/winnt/winnt-module.c b/libcfs/libcfs/winnt/winnt-module.c index 72edda0..e44f28f 100644 --- a/libcfs/libcfs/winnt/winnt-module.c +++ b/libcfs/libcfs/winnt/winnt-module.c @@ -142,7 +142,7 @@ libcfs_ioctl(struct file *file, unsigned int cmd, ulong_ptr_t arg) /* Handle platform-dependent IOC requests */ switch (cmd) { case IOC_LIBCFS_PANIC: - if (!cfs_capable(CAP_SYS_BOOT)) + if (!cfs_capable(CFS_CAP_SYS_BOOT)) return (-EPERM); CERROR("debugctl-invoked panic"); KeBugCheckEx('LUFS', (ULONG_PTR)libcfs_ioctl, (ULONG_PTR)NULL, (ULONG_PTR)NULL, (ULONG_PTR)NULL); @@ -150,7 +150,7 @@ libcfs_ioctl(struct file *file, unsigned int cmd, ulong_ptr_t arg) return (0); case IOC_LIBCFS_MEMHOG: - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) return -EPERM; break; } diff --git a/lustre/include/lustre_sec.h b/lustre/include/lustre_sec.h index 11e4b0c..11d8460 100644 --- a/lustre/include/lustre_sec.h +++ b/lustre/include/lustre_sec.h @@ -1138,8 +1138,8 @@ int sptlrpc_pack_user_desc(struct lustre_msg *msg, int offset); int sptlrpc_unpack_user_desc(struct lustre_msg *req, int offset, int swabbed); -#define CFS_CAP_CHOWN_MASK (1 << CAP_CHOWN) -#define CFS_CAP_SYS_RESOURCE_MASK (1 << CAP_SYS_RESOURCE) +#define CFS_CAP_CHOWN_MASK (1 << CFS_CAP_CHOWN) +#define CFS_CAP_SYS_RESOURCE_MASK (1 << CFS_CAP_SYS_RESOURCE) enum { LUSTRE_SEC_NONE = 0, diff --git a/lustre/liblustre/super.c b/lustre/liblustre/super.c index af978cb..dc56523 100644 --- a/lustre/liblustre/super.c +++ b/lustre/liblustre/super.c @@ -77,18 +77,18 @@ static int ll_permission(struct inode *inode, int mask) if ((mode & mask & (MAY_READ|MAY_WRITE|MAY_EXEC)) == mask) return 0; - if ((mask & (MAY_READ|MAY_WRITE)) || - (st->st_mode & S_IXUGO)) - if (cfs_capable(CAP_DAC_OVERRIDE)) - return 0; - - if (mask == MAY_READ || - (S_ISDIR(st->st_mode) && !(mask & MAY_WRITE))) { - if (cfs_capable(CAP_DAC_READ_SEARCH)) - return 0; - } + if ((mask & (MAY_READ|MAY_WRITE)) || + (st->st_mode & S_IXUGO)) + if (cfs_capable(CFS_CAP_DAC_OVERRIDE)) + return 0; + + if (mask == MAY_READ || + (S_ISDIR(st->st_mode) && !(mask & MAY_WRITE))) { + if (cfs_capable(CFS_CAP_DAC_READ_SEARCH)) + return 0; + } - return -EACCES; + return -EACCES; } static void llu_fsop_gone(struct filesys *fs) @@ -572,7 +572,7 @@ static int inode_setattr(struct inode * inode, struct iattr * attr) if (ia_valid & ATTR_MODE) { st->st_mode = attr->ia_mode; if (!in_group_p(st->st_gid) && - !cfs_capable(CAP_FSETID)) + !cfs_capable(CFS_CAP_FSETID)) st->st_mode &= ~S_ISGID; } /* mark_inode_dirty(inode); */ @@ -743,13 +743,13 @@ int llu_setattr_raw(struct inode *inode, struct iattr *attr) if (current->fsuid != st->st_uid && (rc = ll_permission(inode, MAY_WRITE)) != 0) RETURN(rc); - } else { - /* from inode_change_ok() */ - if (current->fsuid != st->st_uid && - !cfs_capable(CAP_FOWNER)) - RETURN(-EPERM); - } - } + } else { + /* from inode_change_ok() */ + if (current->fsuid != st->st_uid && + !cfs_capable(CFS_CAP_FOWNER)) + RETURN(-EPERM); + } + } /* Won't invoke llu_vmtruncate(), as we already cleared diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index 7fc7c30..c90c543 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -1107,25 +1107,25 @@ static int quotactl_ioctl(struct ll_sb_info *sbi, struct if_quotactl *qctl) int rc = 0; ENTRY; - switch (cmd) { - case LUSTRE_Q_INVALIDATE: - case LUSTRE_Q_FINVALIDATE: - case Q_QUOTAON: - case Q_QUOTAOFF: - case Q_SETQUOTA: - case Q_SETINFO: - if (!cfs_capable(CAP_SYS_ADMIN) || - sbi->ll_flags & LL_SBI_RMT_CLIENT) - RETURN(-EPERM); - break; + switch (cmd) { + case LUSTRE_Q_INVALIDATE: + case LUSTRE_Q_FINVALIDATE: + case Q_QUOTAON: + case Q_QUOTAOFF: + case Q_SETQUOTA: + case Q_SETINFO: + if (!cfs_capable(CFS_CAP_SYS_ADMIN) || + sbi->ll_flags & LL_SBI_RMT_CLIENT) + RETURN(-EPERM); + break; case Q_GETQUOTA: if (((type == USRQUOTA && current_euid() != id) || (type == GRPQUOTA && !in_egroup_p(id))) && - (!cfs_capable(CAP_SYS_ADMIN) || + (!cfs_capable(CFS_CAP_SYS_ADMIN) || sbi->ll_flags & LL_SBI_RMT_CLIENT)) RETURN(-EPERM); - break; - case Q_GETINFO: + break; + case Q_GETINFO: break; default: CERROR("unsupported quotactl op: %#x\n", cmd); @@ -1630,13 +1630,13 @@ out_rmdir: case OBD_IOC_LLOG_CATINFO: { RETURN(-EOPNOTSUPP); } - case OBD_IOC_QUOTACHECK: { - struct obd_quotactl *oqctl; - int error = 0; + case OBD_IOC_QUOTACHECK: { + struct obd_quotactl *oqctl; + int error = 0; - if (!cfs_capable(CAP_SYS_ADMIN) || - sbi->ll_flags & LL_SBI_RMT_CLIENT) - RETURN(-EPERM); + if (!cfs_capable(CFS_CAP_SYS_ADMIN) || + sbi->ll_flags & LL_SBI_RMT_CLIENT) + RETURN(-EPERM); OBD_ALLOC_PTR(oqctl); if (!oqctl) @@ -1655,12 +1655,12 @@ out_rmdir: OBD_FREE_PTR(oqctl); return error ?: rc; } - case OBD_IOC_POLL_QUOTACHECK: { - struct if_quotacheck *check; + case OBD_IOC_POLL_QUOTACHECK: { + struct if_quotacheck *check; - if (!cfs_capable(CAP_SYS_ADMIN) || - sbi->ll_flags & LL_SBI_RMT_CLIENT) - RETURN(-EPERM); + if (!cfs_capable(CFS_CAP_SYS_ADMIN) || + sbi->ll_flags & LL_SBI_RMT_CLIENT) + RETURN(-EPERM); OBD_ALLOC_PTR(check); if (!check) diff --git a/lustre/llite/file.c b/lustre/llite/file.c index fb70eba..ef524f7 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1441,7 +1441,7 @@ static int ll_lov_recreate_obj(struct inode *inode, unsigned long arg) struct ost_id oi; ENTRY; - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) RETURN(-EPERM); if (copy_from_user(&ucreat, (struct ll_recreate_obj *)arg, @@ -1460,7 +1460,7 @@ static int ll_lov_recreate_fid(struct inode *inode, unsigned long arg) obd_count ost_idx; ENTRY; - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) RETURN(-EPERM); if (copy_from_user(&fid, (struct lu_fid *)arg, sizeof(fid))) @@ -1602,7 +1602,7 @@ static int ll_lov_setea(struct inode *inode, struct file *file, int rc; ENTRY; - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) RETURN(-EPERM); OBD_ALLOC_LARGE(lump, lum_size); @@ -1859,7 +1859,7 @@ int ll_fid2path(struct inode *inode, void *arg) int outsize, rc; ENTRY; - if (!cfs_capable(CAP_DAC_READ_SEARCH) && + if (!cfs_capable(CFS_CAP_DAC_READ_SEARCH) && !(ll_i2sbi(inode)->ll_flags & LL_SBI_USER_FID2PATH)) RETURN(-EPERM); @@ -2208,7 +2208,7 @@ static int ll_hsm_state_set(struct inode *inode, struct hsm_state_set *hss) /* Non-root users are forbidden to set or clear flags which are * NOT defined in HSM_USER_MASK. */ if (((hss->hss_setmask | hss->hss_clearmask) & ~HSM_USER_MASK) && - !cfs_capable(CAP_SYS_ADMIN)) + !cfs_capable(CFS_CAP_SYS_ADMIN)) RETURN(-EPERM); op_data = ll_prep_md_op_data(NULL, inode, NULL, NULL, 0, 0, diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index e13f3c1..6347213 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -1436,7 +1436,7 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) /* POSIX: check before ATTR_*TIME_SET set (from inode_change_ok) */ if (attr->ia_valid & TIMES_SET_FLAGS) { if (current_fsuid() != inode->i_uid && - !cfs_capable(CAP_FOWNER)) + !cfs_capable(CFS_CAP_FOWNER)) RETURN(-EPERM); } diff --git a/lustre/llite/xattr.c b/lustre/llite/xattr.c index 22f81f0..56decef 100644 --- a/lustre/llite/xattr.c +++ b/lustre/llite/xattr.c @@ -88,19 +88,19 @@ int get_xattr_type(const char *name) static int xattr_type_filter(struct ll_sb_info *sbi, int xattr_type) { - if ((xattr_type == XATTR_ACL_ACCESS_T || - xattr_type == XATTR_ACL_DEFAULT_T) && - !(sbi->ll_flags & LL_SBI_ACL)) - return -EOPNOTSUPP; - - if (xattr_type == XATTR_USER_T && !(sbi->ll_flags & LL_SBI_USER_XATTR)) - return -EOPNOTSUPP; - if (xattr_type == XATTR_TRUSTED_T && !cfs_capable(CAP_SYS_ADMIN)) - return -EPERM; - if (xattr_type == XATTR_OTHER_T) - return -EOPNOTSUPP; - - return 0; + if ((xattr_type == XATTR_ACL_ACCESS_T || + xattr_type == XATTR_ACL_DEFAULT_T) && + !(sbi->ll_flags & LL_SBI_ACL)) + return -EOPNOTSUPP; + + if (xattr_type == XATTR_USER_T && !(sbi->ll_flags & LL_SBI_USER_XATTR)) + return -EOPNOTSUPP; + if (xattr_type == XATTR_TRUSTED_T && !cfs_capable(CFS_CAP_SYS_ADMIN)) + return -EPERM; + if (xattr_type == XATTR_OTHER_T) + return -EOPNOTSUPP; + + return 0; } static diff --git a/lustre/mdd/mdd_dir.c b/lustre/mdd/mdd_dir.c index 478065a..2919a3b 100644 --- a/lustre/mdd/mdd_dir.c +++ b/lustre/mdd/mdd_dir.c @@ -375,7 +375,7 @@ static inline int mdd_is_sticky(const struct lu_env *env, if (tmp_la->la_uid == uc->uc_fsuid) return 0; - return !md_capable(uc, CAP_FOWNER); + return !md_capable(uc, CFS_CAP_FOWNER); } static int mdd_may_delete_entry(const struct lu_env *env, diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 7b8663c..2ed976d 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -503,7 +503,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, (LUSTRE_IMMUTABLE_FL | LUSTRE_APPEND_FL); if ((uc->uc_fsuid != tmp_la->la_uid) && - !md_capable(uc, CAP_FOWNER)) + !md_capable(uc, CFS_CAP_FOWNER)) RETURN(-EPERM); /* XXX: the IMMUTABLE and APPEND_ONLY flags can @@ -513,7 +513,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, if (mdd_is_append(obj)) oldflags |= LUSTRE_APPEND_FL; if ((oldflags ^ newflags) && - !md_capable(uc, CAP_LINUX_IMMUTABLE)) + !md_capable(uc, CFS_CAP_LINUX_IMMUTABLE)) RETURN(-EPERM); if (!S_ISDIR(tmp_la->la_mode)) @@ -529,7 +529,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, if ((la->la_valid & (LA_MTIME | LA_ATIME | LA_CTIME)) && !(la->la_valid & ~(LA_MTIME | LA_ATIME | LA_CTIME))) { if ((uc->uc_fsuid != tmp_la->la_uid) && - !md_capable(uc, CAP_FOWNER)) { + !md_capable(uc, CFS_CAP_FOWNER)) { rc = mdd_permission_internal(env, obj, tmp_la, MAY_WRITE); if (rc) @@ -562,7 +562,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, if (la->la_valid & LA_MODE) { if (!(flags & MDS_PERM_BYPASS) && (uc->uc_fsuid != tmp_la->la_uid) && - !md_capable(uc, CAP_FOWNER)) + !md_capable(uc, CFS_CAP_FOWNER)) RETURN(-EPERM); if (la->la_mode == (umode_t) -1) @@ -574,7 +574,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, /* Also check the setgid bit! */ if (!lustre_in_group_p(uc, (la->la_valid & LA_GID) ? la->la_gid : tmp_la->la_gid) && - !md_capable(uc, CAP_FSETID)) + !md_capable(uc, CFS_CAP_FSETID)) la->la_mode &= ~S_ISGID; } else { la->la_mode = tmp_la->la_mode; @@ -586,7 +586,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, la->la_uid = tmp_la->la_uid; if (((uc->uc_fsuid != tmp_la->la_uid) || (la->la_uid != tmp_la->la_uid)) && - !md_capable(uc, CAP_CHOWN)) + !md_capable(uc, CFS_CAP_CHOWN)) RETURN(-EPERM); /* If the user or group of a non-directory has been @@ -612,7 +612,7 @@ static int mdd_fix_attr(const struct lu_env *env, struct mdd_object *obj, if (((uc->uc_fsuid != tmp_la->la_uid) || ((la->la_gid != tmp_la->la_gid) && !lustre_in_group_p(uc, la->la_gid))) && - !md_capable(uc, CAP_CHOWN)) + !md_capable(uc, CFS_CAP_CHOWN)) RETURN(-EPERM); /* Likewise, if the user or group of a non-directory @@ -943,7 +943,7 @@ static int mdd_xattr_sanity_check(const struct lu_env *env, RETURN(rc); if ((uc->uc_fsuid != tmp_la->la_uid) && - !md_capable(uc, CAP_FOWNER)) + !md_capable(uc, CFS_CAP_FOWNER)) RETURN(-EPERM); RETURN(rc); @@ -1651,7 +1651,7 @@ static int mdd_open_sanity_check(const struct lu_env *env, if (uc && ((uc->uc_valid == UCRED_OLD) || (uc->uc_valid == UCRED_NEW)) && (uc->uc_fsuid != tmp_la->la_uid) && - !md_capable(uc, CAP_FOWNER)) + !md_capable(uc, CFS_CAP_FOWNER)) RETURN(-EPERM); } #endif diff --git a/lustre/mdd/mdd_permission.c b/lustre/mdd/mdd_permission.c index d74ec19..f52d617 100644 --- a/lustre/mdd/mdd_permission.c +++ b/lustre/mdd/mdd_permission.c @@ -298,12 +298,12 @@ int __mdd_permission_internal(const struct lu_env *env, struct mdd_object *obj, check_capabilities: if (!(mask & MAY_EXEC) || (la->la_mode & S_IXUGO) || S_ISDIR(la->la_mode)) - if (md_capable(uc, CAP_DAC_OVERRIDE)) + if (md_capable(uc, CFS_CAP_DAC_OVERRIDE)) RETURN(0); if ((mask == MAY_READ) || (S_ISDIR(la->la_mode) && !(mask & MAY_WRITE))) - if (md_capable(uc, CAP_DAC_READ_SEARCH)) + if (md_capable(uc, CFS_CAP_DAC_READ_SEARCH)) RETURN(0); RETURN(-EACCES); @@ -393,7 +393,7 @@ int mdd_permission(const struct lu_env *env, uc = lu_ucred_assert(env); if (la->la_uid != uc->uc_fsuid && - !md_capable(uc, CAP_FOWNER)) + !md_capable(uc, CFS_CAP_FOWNER)) rc = -EPERM; } diff --git a/lustre/mdt/mdt_open.c b/lustre/mdt/mdt_open.c index 633edaa..0cb4d93 100644 --- a/lustre/mdt/mdt_open.c +++ b/lustre/mdt/mdt_open.c @@ -1933,7 +1933,7 @@ static struct mdt_object *mdt_orphan_open(struct mdt_thread_info *info, uc = lu_ucred(env); uc_cap_save = uc->uc_cap; - uc->uc_cap |= 1 << CAP_DAC_OVERRIDE; + uc->uc_cap |= 1 << CFS_CAP_DAC_OVERRIDE; rc = mdo_create(env, mdt_object_child(local_root), lname, mdt_object_child(obj), spec, attr); uc->uc_cap = uc_cap_save; diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index af4f937..909091c 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -310,7 +310,7 @@ static int mdt_md_create(struct mdt_thread_info *info) struct seq_server_site *ss; struct lu_ucred *uc = mdt_ucred(info); - if (!md_capable(uc, CAP_SYS_ADMIN)) { + if (!md_capable(uc, CFS_CAP_SYS_ADMIN)) { if (uc->uc_gid != mdt->mdt_enable_remote_dir_gid && mdt->mdt_enable_remote_dir_gid != -1) { @@ -794,7 +794,7 @@ static int mdt_reint_unlink(struct mdt_thread_info *info, if (info->mti_spec.sp_rm_entry) { struct lu_ucred *uc = mdt_ucred(info); - if (!md_capable(uc, CAP_SYS_ADMIN)) { + if (!md_capable(uc, CFS_CAP_SYS_ADMIN)) { CERROR("%s: unlink remote entry is only " "permitted for administrator: rc = %d\n", mdt_obd_name(info->mti_mdt), diff --git a/lustre/obdclass/linux/linux-module.c b/lustre/obdclass/linux/linux-module.c index c3035ab..37d2d3a 100644 --- a/lustre/obdclass/linux/linux-module.c +++ b/lustre/obdclass/linux/linux-module.c @@ -193,18 +193,18 @@ static int obd_class_release(struct inode * inode, struct file * file) static long obd_class_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { - int err = 0; - ENTRY; + int err = 0; + ENTRY; - /* Allow non-root access for OBD_IOC_PING_TARGET - used by lfs check */ - if (!cfs_capable(CAP_SYS_ADMIN) && (cmd != OBD_IOC_PING_TARGET)) - RETURN(err = -EACCES); - if ((cmd & 0xffffff00) == ((int)'T') << 8) /* ignore all tty ioctls */ - RETURN(err = -ENOTTY); + /* Allow non-root access for OBD_IOC_PING_TARGET - used by lfs check */ + if (!cfs_capable(CFS_CAP_SYS_ADMIN) && (cmd != OBD_IOC_PING_TARGET)) + RETURN(err = -EACCES); + if ((cmd & 0xffffff00) == ((int)'T') << 8) /* ignore all tty ioctls */ + RETURN(err = -ENOTTY); - err = class_handle_ioctl(cmd, (unsigned long)arg); + err = class_handle_ioctl(cmd, (unsigned long)arg); - RETURN(err); + RETURN(err); } /* declare character device */ diff --git a/lustre/obdclass/llog.c b/lustre/obdclass/llog.c index 4a5cab8..a690233 100644 --- a/lustre/obdclass/llog.c +++ b/lustre/obdclass/llog.c @@ -620,12 +620,12 @@ int llog_declare_create(const struct lu_env *env, if (lop->lop_declare_create == NULL) RETURN(-EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lop->lop_declare_create(env, loghandle, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_declare_create); @@ -644,12 +644,12 @@ int llog_create(const struct lu_env *env, struct llog_handle *handle, if (lop->lop_create == NULL) RETURN(-EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lop->lop_create(env, handle, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_create); @@ -671,12 +671,12 @@ int llog_declare_write_rec(const struct lu_env *env, if (lop->lop_declare_write_rec == NULL) RETURN(-EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lop->lop_declare_write_rec(env, handle, rec, idx, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_declare_write_rec); @@ -705,13 +705,13 @@ int llog_write_rec(const struct lu_env *env, struct llog_handle *handle, buflen = rec->lrh_len; LASSERT(cfs_size_round(buflen) == buflen); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lop->lop_write_rec(env, handle, rec, logcookies, numcookies, buf, idx, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_write_rec); @@ -727,12 +727,12 @@ int llog_add(const struct lu_env *env, struct llog_handle *lgh, if (lgh->lgh_logops->lop_add == NULL) RETURN(-EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lgh->lgh_logops->lop_add(env, lgh, rec, logcookies, buf, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_add); @@ -747,12 +747,12 @@ int llog_declare_add(const struct lu_env *env, struct llog_handle *lgh, if (lgh->lgh_logops->lop_declare_add == NULL) RETURN(-EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = lgh->lgh_logops->lop_declare_add(env, lgh, rec, th); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); RETURN(rc); } EXPORT_SYMBOL(llog_declare_add); @@ -896,12 +896,12 @@ int llog_open(const struct lu_env *env, struct llog_ctxt *ctxt, (*lgh)->lgh_ctxt = ctxt; (*lgh)->lgh_logops = ctxt->loc_logops; - raised = cfs_cap_raised(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = ctxt->loc_logops->lop_open(env, *lgh, logid, name, open_param); if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); if (rc) { llog_free_handle(*lgh); *lgh = NULL; diff --git a/lustre/obdclass/llog_obd.c b/lustre/obdclass/llog_obd.c index 6ef024b..ded9dc6 100644 --- a/lustre/obdclass/llog_obd.c +++ b/lustre/obdclass/llog_obd.c @@ -248,14 +248,14 @@ int llog_obd_add(const struct lu_env *env, struct llog_ctxt *ctxt, RETURN(-ENXIO); CTXT_CHECK_OP(ctxt, obd_add, -EOPNOTSUPP); - raised = cfs_cap_raised(CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CAP_SYS_RESOURCE); + raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); + if (!raised) + cfs_cap_raise(CFS_CAP_SYS_RESOURCE); rc = CTXTP(ctxt, obd_add)(env, ctxt, rec, lsm, logcookies, numcookies); - if (!raised) - cfs_cap_lower(CAP_SYS_RESOURCE); - RETURN(rc); + if (!raised) + cfs_cap_lower(CFS_CAP_SYS_RESOURCE); + RETURN(rc); } EXPORT_SYMBOL(llog_obd_add); diff --git a/lustre/obdclass/obdo.c b/lustre/obdclass/obdo.c index f35fb01..b7587d4 100644 --- a/lustre/obdclass/obdo.c +++ b/lustre/obdclass/obdo.c @@ -239,7 +239,7 @@ void obdo_from_iattr(struct obdo *oa, struct iattr *attr, unsigned int ia_valid) oa->o_mode = attr->ia_mode; oa->o_valid |= OBD_MD_FLTYPE | OBD_MD_FLMODE; if (!in_group_p(oa->o_gid) && - !cfs_capable(CAP_FSETID)) + !cfs_capable(CFS_CAP_FSETID)) oa->o_mode &= ~S_ISGID; } if (ia_valid & ATTR_UID) { @@ -288,7 +288,7 @@ void iattr_from_obdo(struct iattr *attr, struct obdo *oa, obd_flag valid) attr->ia_mode = (attr->ia_mode & S_IFMT)|(oa->o_mode & ~S_IFMT); attr->ia_valid |= ATTR_MODE; if (!in_group_p(oa->o_gid) && - !cfs_capable(CAP_FSETID)) + !cfs_capable(CFS_CAP_FSETID)) attr->ia_mode &= ~S_ISGID; } if (valid & OBD_MD_FLUID) { diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index 46d3c5f..b4344ec 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -2813,14 +2813,14 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, if (rc) GOTO(out, rc = -ENOMEM); - switch (cmd) { - case OBD_IOC_CREATE: /* may create echo object */ - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + switch (cmd) { + case OBD_IOC_CREATE: /* may create echo object */ + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); - rc = echo_create_object(env, ed, 1, oa, data->ioc_pbuf1, - data->ioc_plen1, &dummy_oti); - GOTO(out, rc); + rc = echo_create_object(env, ed, 1, oa, data->ioc_pbuf1, + data->ioc_plen1, &dummy_oti); + GOTO(out, rc); case OBD_IOC_ECHO_MD: { int count; @@ -2829,7 +2829,7 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, int dirlen; __u64 id; - if (!cfs_capable(CAP_SYS_ADMIN)) + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) GOTO(out, rc = -EPERM); count = data->ioc_count; @@ -2852,16 +2852,16 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, GOTO(out, rc); } case OBD_IOC_ECHO_ALLOC_SEQ: { - struct lu_env *cl_env; - int refcheck; - __u64 seq; - int max_count; + struct lu_env *cl_env; + int refcheck; + __u64 seq; + int max_count; - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO(out, rc = -EPERM); + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO(out, rc = -EPERM); - cl_env = cl_env_get(&refcheck); - if (IS_ERR(cl_env)) + cl_env = cl_env_get(&refcheck); + if (IS_ERR(cl_env)) GOTO(out, rc = PTR_ERR(cl_env)); rc = lu_env_refill_by_tags(cl_env, ECHO_MD_CTX_TAG, @@ -2888,11 +2888,11 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, return -EFAULT; GOTO(out, rc); } - case OBD_IOC_DESTROY: - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + case OBD_IOC_DESTROY: + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); - rc = echo_get_object(&eco, ed, oa); + rc = echo_get_object(&eco, ed, oa); if (rc == 0) { rc = obd_destroy(env, ec->ec_exp, oa, eco->eo_lsm, &dummy_oti, NULL, NULL); @@ -2913,11 +2913,11 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, } GOTO(out, rc); - case OBD_IOC_SETATTR: - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + case OBD_IOC_SETATTR: + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); - rc = echo_get_object(&eco, ed, oa); + rc = echo_get_object(&eco, ed, oa); if (rc == 0) { struct obd_info oinfo = { { { 0 } } }; oinfo.oi_oa = oa; @@ -2928,12 +2928,12 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, } GOTO(out, rc); - case OBD_IOC_BRW_WRITE: - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + case OBD_IOC_BRW_WRITE: + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); - rw = OBD_BRW_WRITE; - /* fall through */ + rw = OBD_BRW_WRITE; + /* fall through */ case OBD_IOC_BRW_READ: rc = echo_client_brw_ioctl(env, rw, exp, data, &dummy_oti); GOTO(out, rc); @@ -2947,9 +2947,9 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, } GOTO(out, rc); - case ECHO_IOC_SET_STRIPE: - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + case ECHO_IOC_SET_STRIPE: + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); if (data->ioc_pbuf1 == NULL) { /* unset */ rc = echo_get_object(&eco, ed, oa); @@ -2964,9 +2964,9 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, } GOTO (out, rc); - case ECHO_IOC_ENQUEUE: - if (!cfs_capable(CAP_SYS_ADMIN)) - GOTO (out, rc = -EPERM); + case ECHO_IOC_ENQUEUE: + if (!cfs_capable(CFS_CAP_SYS_ADMIN)) + GOTO (out, rc = -EPERM); rc = echo_client_enqueue(exp, oa, data->ioc_conn1, /* lock mode */ diff --git a/lustre/osc/osc_cache.c b/lustre/osc/osc_cache.c index 750491e..1096d03 100644 --- a/lustre/osc/osc_cache.c +++ b/lustre/osc/osc_cache.c @@ -2207,7 +2207,7 @@ int osc_prep_async_page(struct osc_object *osc, struct osc_page *ops, oap->oap_obj_off = offset; LASSERT(!(offset & ~CFS_PAGE_MASK)); - if (!client_is_remote(exp) && cfs_capable(CAP_SYS_RESOURCE)) + if (!client_is_remote(exp) && cfs_capable(CFS_CAP_SYS_RESOURCE)) oap->oap_brw_flags = OBD_BRW_NOQUOTA; CFS_INIT_LIST_HEAD(&oap->oap_pending_item); @@ -2248,7 +2248,7 @@ int osc_queue_async_io(const struct lu_env *env, struct cl_io *io, /* Set the OBD_BRW_SRVLOCK before the page is queued. */ brw_flags |= ops->ops_srvlock ? OBD_BRW_SRVLOCK : 0; if (!client_is_remote(osc_export(osc)) && - cfs_capable(CAP_SYS_RESOURCE)) { + cfs_capable(CFS_CAP_SYS_RESOURCE)) { brw_flags |= OBD_BRW_NOQUOTA; cmd |= OBD_BRW_NOQUOTA; } diff --git a/lustre/osc/osc_io.c b/lustre/osc/osc_io.c index d1be316..bf93df5 100644 --- a/lustre/osc/osc_io.c +++ b/lustre/osc/osc_io.c @@ -299,10 +299,10 @@ static int osc_io_commit_write(const struct lu_env *env, * cl_page_touch() method, that generic cl_io_commit_write() and page * fault code calls. */ - osc_page_touch(env, cl2osc_page(slice), to); - if (!client_is_remote(osc_export(obj)) && - cfs_capable(CAP_SYS_RESOURCE)) - oap->oap_brw_flags |= OBD_BRW_NOQUOTA; + osc_page_touch(env, cl2osc_page(slice), to); + if (!client_is_remote(osc_export(obj)) && + cfs_capable(CFS_CAP_SYS_RESOURCE)) + oap->oap_brw_flags |= OBD_BRW_NOQUOTA; if (oio->oi_lockless) /* see osc_io_prepare_write() for lockless io handling. */ diff --git a/lustre/osc/osc_page.c b/lustre/osc/osc_page.c index ebad271..cba22fe 100644 --- a/lustre/osc/osc_page.c +++ b/lustre/osc/osc_page.c @@ -568,7 +568,7 @@ void osc_page_submit(const struct lu_env *env, struct osc_page *opg, oap->oap_brw_flags = OBD_BRW_SYNC | brw_flags; if (!client_is_remote(osc_export(obj)) && - cfs_capable(CAP_SYS_RESOURCE)) { + cfs_capable(CFS_CAP_SYS_RESOURCE)) { oap->oap_brw_flags |= OBD_BRW_NOQUOTA; oap->oap_cmd |= OBD_BRW_NOQUOTA; } -- 1.8.3.1