summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2007-08-16 11:00:07 +0000
committerXin LI <delphij@FreeBSD.org>2007-08-16 11:00:07 +0000
commit1f32d0127b2e47c9e2b85f452c4b3cea86bcc669 (patch)
treeaa014884c3b0b35871143c76d3c200dbd4116540
parent6ec46f7aa84814fb26f0639f63684bca915f5c99 (diff)
Notes
-rw-r--r--sys/fs/tmpfs/tmpfs_vnops.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c
index 1d38ed9a15dd..711c0a6c25a7 100644
--- a/sys/fs/tmpfs/tmpfs_vnops.c
+++ b/sys/fs/tmpfs/tmpfs_vnops.c
@@ -1219,22 +1219,25 @@ tmpfs_readdir(struct vop_readdir_args *v)
startoff = uio->uio_offset;
- switch (startoff) {
- case TMPFS_DIRCOOKIE_DOT:
+ if (uio->uio_offset == TMPFS_DIRCOOKIE_DOT) {
error = tmpfs_dir_getdotdent(node, uio);
- if (error == 0)
- cnt++;
- break;
- case TMPFS_DIRCOOKIE_DOTDOT:
+ if (error != 0)
+ goto outok;
+ cnt++;
+ }
+
+ if (uio->uio_offset == TMPFS_DIRCOOKIE_DOTDOT) {
error = tmpfs_dir_getdotdotdent(node, uio);
- if (error == 0)
- cnt++;
- break;
- default:
- error = tmpfs_dir_getdents(node, uio, &cnt);
- MPASS(error >= -1);
+ if (error != 0)
+ goto outok;
+ cnt++;
}
+ error = tmpfs_dir_getdents(node, uio, &cnt);
+
+outok:
+ MPASS(error >= -1);
+
if (error == -1)
error = 0;