{
if(decref(mpt))
return;
- if(mpt->m.to)
+ if(mpt->m.to != nil)
cclose(mpt->m.to);
free(mpt->name);
free(mpt->owner);
nc = devclone(c);
sch = smalloc(sizeof(*sch));
memmove(sch, och, sizeof(*sch));
- if(sch->shr)
+ if(sch->shr != nil)
incref(sch->shr);
- if(sch->mpt)
+ if(sch->mpt != nil)
incref(sch->mpt);
sch->chan = nc;
nc->aux = sch;
sch = tosch(c);
c->aux = nil;
sch->chan = nil;
- if(sch->mpt)
+ if(sch->mpt != nil)
putmpt(sch->mpt);
- if(sch->shr)
+ if(sch->shr != nil)
putshr(sch->shr);
free(sch);
}
sch->shr = nil;
} else if(sch->level == Qcroot || sch->level == Qroot) {
qlock(&shrslk);
- for(shr = shrs; shr; shr = shr->next)
+ for(shr = shrs; shr != nil; shr = shr->next)
if(strcmp(nam, shr->name) == 0){
incref(shr);
break;
shr = sch->shr;
h = &shr->umh;
rlock(&h->lock);
- for(m = h->mount; m; m = m->next){
+ for(m = h->mount; m != nil; m = m->next){
mpt = tompt(m);
if(strcmp(nam, mpt->name) == 0){
incref(mpt);
h = &shr->umh;
wq2 = nil;
rlock(&h->lock);
- for(m = h->mount; m && wq2 == nil; m = m->next){
+ for(m = h->mount; m != nil && wq2 == nil; m = m->next){
if(m->to == nil)
continue;
if(waserror())
case Qroot:
case Qcroot:
qlock(&shrslk);
- for(shr = shrs; shr && s; shr = shr->next)
+ for(shr = shrs; shr != nil && s > 0; shr = shr->next)
s--;
if(shr == nil){
qunlock(&shrslk);
shr = sch->shr;
h = &shr->umh;
rlock(&h->lock);
- for(m = h->mount; m && s; m = m->next)
+ for(m = h->mount; m != nil && s > 0; m = m->next)
s--;
if(m == nil){
runlock(&h->lock);
qunlock(&shrslk);
nexterror();
}
- for(shr = shrs; shr; shr = shr->next)
+ for(shr = shrs; shr != nil; shr = shr->next)
if(strcmp(name, shr->name) == 0)
error(Eexist);
case Qcshr:
if(up->pgrp->noattach)
error(Enoattach);
- if((perm & DMDIR) || openmode(omode) != OWRITE)
+ if((perm & DMDIR) != 0 || openmode(omode) != OWRITE)
error(Eperm);
shr = sch->shr;
wunlock(&h->lock);
nexterror();
}
- for(m = h->mount; m; m = m->next){
+ for(m = h->mount; m != nil; m = m->next){
mpt = tompt(m);
if(strcmp(name, mpt->name) == 0)
error(Eexist);
h = &shr->umh;
qlock(&shrslk);
rlock(&h->lock);
- if(h->mount){
+ if(h->mount != nil){
runlock(&h->lock);
qunlock(&shrslk);
error("directory not empty");
}
runlock(&h->lock);
- for(sl = &shrs; *sl; sl = &((*sl)->next))
+ for(sl = &shrs; *sl != nil; sl = &((*sl)->next))
if(*sl == shr){
*sl = shr->next;
shr->next = nil;
m = &mpt->m;
h = &shr->umh;
wlock(&h->lock);
- for(ml = &h->mount; *ml; ml = &((*ml)->next))
+ for(ml = &h->mount; *ml != nil; ml = &((*ml)->next))
if(*ml == m){
*ml = m->next;
m->next = nil;
Ent *ent;
Dir d;
+ strs = smalloc(n);
+ if(waserror()){
+ free(strs);
+ nexterror();
+ }
+ n = convM2D(dp, n, &d, strs);
+ if(n == 0)
+ error(Eshortstat);
+
h = nil;
sch = tosch(c);
switch(sch->level){
if(strcmp(ent->owner, up->user) && !iseve())
error(Eperm);
- strs = smalloc(n);
- if(waserror()){
- free(strs);
- nexterror();
- }
- n = convM2D(dp, n, &d, strs);
- if(n == 0)
- error(Eshortstat);
if(d.mode != ~0UL)
ent->perm = d.mode & 0777;
- if(d.uid && *d.uid)
- kstrdup(&ent->owner, d.uid);
- if(d.name && *d.name && strcmp(ent->name, d.name) != 0) {
+ if(d.name != nil && *d.name && strcmp(ent->name, d.name) != 0) {
if(strchr(d.name, '/') != nil)
error(Ebadchar);
if(strlen(d.name) >= sizeof(up->genbuf))
error(Etoolong);
kstrdup(&ent->name, d.name);
}
- poperror();
- free(strs);
+ if(d.uid != nil && *d.uid)
+ kstrdup(&ent->owner, d.uid);
switch(sch->level){
case Qcshr:
wunlock(&h->lock);
break;
}
+
+ poperror();
+ free(strs);
+
return n;
}
m->to = c0;
wunlock(&h->lock);
- if(bc)
+ if(bc != nil)
cclose(bc);
return n;
static void
chowner(Ent *ent, char *old, char *new)
{
- if(ent->owner!=nil && strcmp(old, ent->owner)==0)
+ if(ent->owner != nil && strcmp(old, ent->owner) == 0)
kstrdup(&ent->owner, new);
}
Mount *m;
qlock(&shrslk);
- for(shr = shrs; shr; shr = shr->next){
+ for(shr = shrs; shr != nil; shr = shr->next){
wlock(&shr->umh.lock);
- for(m = shr->umh.mount; m; m = m->next)
+ for(m = shr->umh.mount; m != nil; m = m->next)
chowner(tompt(m), old, new);
wunlock(&shr->umh.lock);
chowner(shr, old, new);