int err = 0, rc = 0;
void *handle = NULL;
void *lock = NULL;
+ obd_uid uid;
+ obd_gid gid;
ENTRY;
filter = &obd->u.filter;
GOTO(cleanup, rc = PTR_ERR(handle));
cleanup_phase = 3;
- uc.luc_uid = oa->o_uid;
- uc.luc_gid = oa->o_gid;
- uc.luc_fsuid = oa->o_uid;
- uc.luc_fsgid = oa->o_gid;
+ uid = oa->o_valid & OBD_MD_FLUID ? oa->o_uid : 0;
+ gid = oa->o_valid & OBD_MD_FLGID ? oa->o_gid : 0;
+
+ uc.luc_uid = uid;
+ uc.luc_gid = gid;
+ uc.luc_fsuid = uid;
+ uc.luc_fsgid = gid;
uc.luc_cap = current->cap_effective;
cap_raise(uc.luc_cap, CAP_SYS_RESOURCE);
#define filter_oa2dentry(obd, oa) __filter_oa2dentry(obd, oa, __FUNCTION__)
int filter_finish_transno(struct obd_export *, struct obd_trans_info *, int rc);
-__u64 filter_next_id(struct filter_obd *, int group);
__u64 filter_last_id(struct filter_obd *, int group);
int filter_update_server_data(struct obd_device *, struct file *,
struct filter_server_data *, int force_sync);
struct niobuf_remote *rnb;
struct fsfilt_objinfo fso;
obd_size left;
- obd_uid uid;
- obd_gid gid;
void *iobuf;
ENTRY;
obd = exp->exp_obd;
push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
- uid = oa->o_valid & OBD_MD_FLUID ? oa->o_uid : 0;
- gid = oa->o_valid & OBD_MD_FLGID ? oa->o_gid : 0;
-
/* make sure that object is already allocated */
dentry = filter_crow_object(obd, oa);
if (IS_ERR(dentry))