X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flib%2Fsimple.c;h=c0d4f31353e6cdc10ee1a3aa6cb4bf6d1db7c124;hb=040033cef24c5aca2967daf2da7a862abcd074cf;hp=f5627ba3de6e29a21ed20efb1cbbd7f854b1ce60;hpb=5c0b2855f617d17e3c0749244edeca1b706f8a7e;p=fs%2Flustre-release.git diff --git a/lustre/lib/simple.c b/lustre/lib/simple.c index f5627ba..c0d4f31 100644 --- a/lustre/lib/simple.c +++ b/lustre/lib/simple.c @@ -55,10 +55,14 @@ void push_ctxt(struct obd_run_ctxt *save, struct obd_run_ctxt *new_ctx, OBD_SET_CTXT_MAGIC(save); /* - CDEBUG(D_INFO, "== push %p->%p == cur fs %p pwd %p (%*s), pwdmnt %p\n", + CDEBUG(D_INFO, + "= push %p->%p = cur fs %p pwd %p:d%d:i%d (%*s), pwdmnt %p:%d\n", save, current, current->fs, current->fs->pwd, + atomic_read(¤t->fs->pwd->d_count), + atomic_read(¤t->fs->pwd->d_inode->i_count), current->fs->pwd->d_name.len, current->fs->pwd->d_name.name, - current->fs->pwdmnt); + current->fs->pwdmnt, + atomic_read(¤t->fs->pwdmnt->mnt_count)); */ save->fs = get_fs(); @@ -80,17 +84,23 @@ void push_ctxt(struct obd_run_ctxt *save, struct obd_run_ctxt *new_ctx, current->fsuid = uc->ouc_fsuid; current->fsgid = uc->ouc_fsgid; current->cap_effective = uc->ouc_cap; - if (uc->ouc_suppgid != -1) - current->groups[current->ngroups++] = uc->ouc_suppgid; + if (uc->ouc_suppgid1 != -1) + current->groups[current->ngroups++] = uc->ouc_suppgid1; + if (uc->ouc_suppgid2 != -1) + current->groups[current->ngroups++] = uc->ouc_suppgid2; } set_fs(new_ctx->fs); set_fs_pwd(current->fs, new_ctx->pwdmnt, new_ctx->pwd); /* - CDEBUG(D_INFO, "== push %p==%p == cur fs %p pwd %p (%*s), pwdmnt %p\n", + CDEBUG(D_INFO, + "= push %p->%p = cur fs %p pwd %p:d%d:i%d (%*s), pwdmnt %p:%d\n", new_ctx, current, current->fs, current->fs->pwd, + atomic_read(¤t->fs->pwd->d_count), + atomic_read(¤t->fs->pwd->d_inode->i_count), current->fs->pwd->d_name.len, current->fs->pwd->d_name.name, - current->fs->pwdmnt); + current->fs->pwdmnt, + atomic_read(¤t->fs->pwdmnt->mnt_count)); */ } @@ -103,39 +113,44 @@ void pop_ctxt(struct obd_run_ctxt *saved, struct obd_run_ctxt *new_ctx, ASSERT_KERNEL_CTXT("popping non-kernel context!\n"); /* - CDEBUG(D_INFO, " == pop %p==%p == cur %p pwd %p (%*s), pwdmnt %p\n", + CDEBUG(D_INFO, + " = pop %p==%p = cur %p pwd %p:d%d:i%d (%*s), pwdmnt %p:%d\n", new_ctx, current, current->fs, current->fs->pwd, + atomic_read(¤t->fs->pwd->d_count), + atomic_read(¤t->fs->pwd->d_inode->i_count), current->fs->pwd->d_name.len, current->fs->pwd->d_name.name, - current->fs->pwdmnt); + current->fs->pwdmnt, + atomic_read(¤t->fs->pwdmnt->mnt_count)); */ LASSERT(current->fs->pwd == new_ctx->pwd); LASSERT(current->fs->pwdmnt == new_ctx->pwdmnt); - //printk("pc2"); set_fs(saved->fs); - //printk("pc3\n"); set_fs_pwd(current->fs, saved->pwdmnt, saved->pwd); - //printk("pc4"); dput(saved->pwd); - //printk("pc5"); mntput(saved->pwdmnt); - //printk("pc6\n"); if (uc) { current->fsuid = saved->fsuid; current->fsgid = saved->fsgid; current->cap_effective = saved->cap; - if (uc->ouc_suppgid != -1) + if (uc->ouc_suppgid1 != -1) + current->ngroups--; + if (uc->ouc_suppgid2 != -1) current->ngroups--; } /* - CDEBUG(D_INFO, "== pop %p->%p == cur fs %p pwd %p (%*s), pwdmnt %p\n", + CDEBUG(D_INFO, + "= pop %p->%p = cur fs %p pwd %p:d%d:i%d (%*s), pwdmnt %p:%d\n", saved, current, current->fs, current->fs->pwd, + atomic_read(¤t->fs->pwd->d_count), + atomic_read(¤t->fs->pwd->d_inode->i_count), current->fs->pwd->d_name.len, current->fs->pwd->d_name.name, - current->fs->pwdmnt); + current->fs->pwdmnt, + atomic_read(¤t->fs->pwdmnt->mnt_count)); */ }