summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2012-01-12 15:15:25 +0100
committercinap_lenrek <cinap_lenrek@centraldogma>2012-01-12 15:15:25 +0100
commit260fcc61c01b32c7b878063ca9dd7c9a118981bf (patch)
tree1a36107db2ae2ab3ee6c04d215e71825ad25fd57
parent577d31ab137f300e8b6fcb25bbb206777fb8d557 (diff)
fix wrong use of qid.type == QTDIR comparsion
-rw-r--r--sys/src/cmd/hgfs/fs.c4
-rw-r--r--sys/src/cmd/ip/cifsd/dir.c2
-rw-r--r--sys/src/cmd/ip/cifsd/file.c2
-rw-r--r--sys/src/cmd/ip/cifsd/smb.c8
-rw-r--r--sys/src/cmd/ip/cifsd/util.c4
-rw-r--r--sys/src/cmd/ip/torrent.c2
-rw-r--r--sys/src/cmd/webfs/fs.c2
7 files changed, 13 insertions, 11 deletions
diff --git a/sys/src/cmd/hgfs/fs.c b/sys/src/cmd/hgfs/fs.c
index 874687d33..cd412a7fd 100644
--- a/sys/src/cmd/hgfs/fs.c
+++ b/sys/src/cmd/hgfs/fs.c
@@ -240,7 +240,7 @@ fsmkdir(Dir *d, int level, void *aux)
fsmkqid(&d->qid, level, aux);
d->mode = 0444;
- if(d->qid.type == QTDIR)
+ if(d->qid.type & QTDIR)
d->mode |= DMDIR | 0111;
ri = nil;
@@ -405,7 +405,7 @@ fswalk1(Fid *fid, char *name, Qid *qid)
Revfile *rf;
int i, level;
- if(!(fid->qid.type&QTDIR))
+ if((fid->qid.type & QTDIR) == 0)
return "walk in non-directory";
rf = fid->aux;
diff --git a/sys/src/cmd/ip/cifsd/dir.c b/sys/src/cmd/ip/cifsd/dir.c
index 91db8506a..0b2d5db72 100644
--- a/sys/src/cmd/ip/cifsd/dir.c
+++ b/sys/src/cmd/ip/cifsd/dir.c
@@ -160,7 +160,7 @@ xdirread0(char **path, int (*namecmp)(char *, char *), Dir **d)
n = -1;
if(fd < 0 || t == nil)
goto out;
- if(t->qid.type != QTDIR){
+ if((t->qid.type & QTDIR) == 0){
werrstr("not a directory");
goto out;
}
diff --git a/sys/src/cmd/ip/cifsd/file.c b/sys/src/cmd/ip/cifsd/file.c
index 9fc8c6c7d..c43dbc782 100644
--- a/sys/src/cmd/ip/cifsd/file.c
+++ b/sys/src/cmd/ip/cifsd/file.c
@@ -122,7 +122,7 @@ noaccess:
goto out;
}
- isdir = d->qid.type == QTDIR;
+ isdir = (d->qid.type & QTDIR) != 0;
switch(cdisp){
case FILE_SUPERSEDE:
act = FILE_SUPERSEDED;
diff --git a/sys/src/cmd/ip/cifsd/smb.c b/sys/src/cmd/ip/cifsd/smb.c
index 3b0eadb1f..160023adb 100644
--- a/sys/src/cmd/ip/cifsd/smb.c
+++ b/sys/src/cmd/ip/cifsd/smb.c
@@ -383,7 +383,7 @@ errout:
xcmd, 0, nfid, act, tofiletime(d->mtime), tofiletime(d->atime),
tofiletime(d->mtime), tofiletime(d->mtime), extfileattr(d),
allocsize(d->length, t->share->blocksize),
- d->length, f->rtype, d->qid.type == QTDIR, &r->rp)){
+ d->length, f->rtype, (d->qid.type & QTDIR) != 0, &r->rp)){
delfid(t, nfid);
r->respond(r, STATUS_INVALID_SMB);
} else
@@ -911,7 +911,7 @@ smbcheckdirectory(Req *r, uchar *h, uchar *p, uchar *e)
r->respond(r, smbmkerror());
goto out;
}
- if(d->qid.type != QTDIR){
+ if((d->qid.type & QTDIR) == 0){
r->respond(r, STATUS_OBJECT_PATH_NOT_FOUND);
goto out;
}
@@ -1057,7 +1057,7 @@ qpackdir(Req *, Dir *d, Tree *t, File *f, int level, uchar *b, uchar *p, uchar *
alen = allocsize(dlen, share->blocksize);
atime = tofiletime(d->atime);
mtime = tofiletime(d->mtime);
- isdir = d->qid.type == QTDIR;
+ isdir = (d->qid.type & QTDIR) != 0;
delete = f && deletedfile(f);
link = !delete;
@@ -1205,7 +1205,7 @@ setfilepathinformation(Req *r, Dir *d, File *f, char *path, int level, uchar *b,
case 0x0104: /* SMB_SET_FILE_END_OF_FILE_INFO */
if(f == nil || !unpack(b, p, e, "v", &len))
goto unsup;
- if(d->qid.type == QTDIR)
+ if(d->qid.type & QTDIR)
return STATUS_OS2_INVALID_ACCESS;
if(len != -1LL)
nd.length = len;
diff --git a/sys/src/cmd/ip/cifsd/util.c b/sys/src/cmd/ip/cifsd/util.c
index e168eb1d6..5fed65943 100644
--- a/sys/src/cmd/ip/cifsd/util.c
+++ b/sys/src/cmd/ip/cifsd/util.c
@@ -144,7 +144,9 @@ extfileattr(Dir *d)
{
int a;
- a = (d->qid.type == QTDIR) ? ATTR_DIRECTORY : ATTR_NORMAL;
+ a = (d->qid.type & QTDIR) ? ATTR_DIRECTORY : ATTR_NORMAL;
+ if((d->qid.type & QTTMP) == 0)
+ a |= ATTR_ARCHIVE;
if((d->mode & 0222) == 0)
a |= ATTR_READONLY;
if(d->name[0] == '.' && d->name[1] && d->name[1] != '.')
diff --git a/sys/src/cmd/ip/torrent.c b/sys/src/cmd/ip/torrent.c
index 9a24155c7..5c5cb019c 100644
--- a/sys/src/cmd/ip/torrent.c
+++ b/sys/src/cmd/ip/torrent.c
@@ -754,7 +754,7 @@ mktorrent(int fd, char *url)
if((d = dirfstat(fd)) == nil)
return -1;
- if(d->qid.type == QTDIR){
+ if(d->qid.type & QTDIR){
free(d);
werrstr("file is a directory");
return -1;
diff --git a/sys/src/cmd/webfs/fs.c b/sys/src/cmd/webfs/fs.c
index 8e8cabbf9..d4ed6ec73 100644
--- a/sys/src/cmd/webfs/fs.c
+++ b/sys/src/cmd/webfs/fs.c
@@ -211,7 +211,7 @@ fsmkdir(Dir *d, int level, void *aux)
d->uid = estrdup(user);
d->gid = estrdup(user);
d->muid = estrdup(user);
- if(d->qid.type == QTDIR)
+ if(d->qid.type & QTDIR)
d->mode |= DMDIR | 0111;
switch(level){
case Qheader: