diff --git a/fs/vfs/main.cc b/fs/vfs/main.cc index 6d25263a1c5556d17456a47fae5da8d8c9cfb32c..d6d9c304a6cef5f2787da15122d4cc8cbc0d7659 100644 --- a/fs/vfs/main.cc +++ b/fs/vfs/main.cc @@ -1554,7 +1554,7 @@ fs_noop(void) return 0; } -#ifdef DEBUG_VFS +#ifdef NOTYET /* * Dump internal data. */ diff --git a/fs/vfs/vfs.h b/fs/vfs/vfs.h index ce4b7351507dc6c6e68f2385bb97e375acad71c4..8f25e127f6b3e57ddac70d4365169d3f6d224b17 100644 --- a/fs/vfs/vfs.h +++ b/fs/vfs/vfs.h @@ -54,6 +54,8 @@ #define FSMAXNAMES 16 /* max length of 'file system' name */ #ifdef DEBUG_VFS +#include <osv/debug.h> + extern int vfs_debug; #define VFSDB_CORE 0x00000001 diff --git a/fs/vfs/vfs_syscalls.cc b/fs/vfs/vfs_syscalls.cc index 7c24c0d2e8b956f00f50781faa33fafb5b535f2a..86d35ce49639953127e27cb0fe7c2ecf02594ac4 100644 --- a/fs/vfs/vfs_syscalls.cc +++ b/fs/vfs/vfs_syscalls.cc @@ -186,8 +186,8 @@ sys_read(struct file *fp, struct iovec *iov, size_t niov, ssize_t bytes; int error; - DPRINTF(VFSDB_SYSCALL, ("sys_write: fp=%x buf=%x size=%d\n", - (u_int)fp, (u_int)buf, size)); + DPRINTF(VFSDB_SYSCALL, ("sys_write: fp=%x offset=%d\n", + (u_long)fp, (u_int)offset)); if ((fp->f_flags & FREAD) == 0) return EBADF; @@ -221,8 +221,8 @@ sys_write(struct file *fp, struct iovec *iov, size_t niov, ssize_t bytes; int error; - DPRINTF(VFSDB_SYSCALL, ("sys_write: fp=%x uio=%x niv=%zu\n", - (u_long)fp, (u_long)uio, niv)); + DPRINTF(VFSDB_SYSCALL, ("sys_write: fp=%x uio=%x niov=%zu\n", + (u_long)fp, (u_long)uio, niov)); if ((fp->f_flags & FWRITE) == 0) return EBADF; @@ -254,7 +254,7 @@ sys_lseek(struct file *fp, off_t off, int type, off_t *origin) struct vnode *vp; DPRINTF(VFSDB_SYSCALL, ("sys_seek: fp=%x off=%d type=%d\n", - (u_int)fp, (u_int)off, type)); + (u_long)fp, (u_int)off, type)); if (!fp->f_dentry) { // Linux doesn't implement lseek() on pipes, sockets, or ttys. diff --git a/fs/vfs/vfs_vnode.c b/fs/vfs/vfs_vnode.c index 80a6bb0fa66d95d3e9c4fe7b4a819f7f097dea29..18d5435e65c05e40e67d56f5525e16566e334148 100644 --- a/fs/vfs/vfs_vnode.c +++ b/fs/vfs/vfs_vnode.c @@ -117,6 +117,20 @@ vn_lookup(struct mount *mp, uint64_t ino) return NULL; /* not found */ } +#ifdef DEBUG_VFS +static const char * +vn_path(struct vnode *vp) +{ + struct dentry *dp; + + if (LIST_EMPTY(&vp->v_names) == 1) { + return (" "); + } + dp = LIST_FIRST(&vp->v_names); + return (dp->d_path); +} +#endif + /* * Lock vnode */ @@ -128,7 +142,7 @@ vn_lock(struct vnode *vp) mutex_lock(&vp->v_lock); vp->v_nrlocks++; - DPRINTF(VFSDB_VNODE, ("vn_lock: %s\n", vp->v_path)); + DPRINTF(VFSDB_VNODE, ("vn_lock: %s\n", vn_path(vp))); } /* @@ -141,9 +155,9 @@ vn_unlock(struct vnode *vp) ASSERT(vp->v_refcnt > 0); ASSERT(vp->v_nrlocks > 0); - DPRINTF(VFSDB_VNODE, ("vn_unlock: %s\n", vp->v_path)); vp->v_nrlocks--; mutex_unlock(&vp->v_lock); + DPRINTF(VFSDB_VNODE, ("vn_lock: %s\n", vn_path(vp))); } /* @@ -215,8 +229,7 @@ vput(struct vnode *vp) ASSERT(vp); ASSERT(vp->v_nrlocks > 0); ASSERT(vp->v_refcnt > 0); - DPRINTF(VFSDB_VNODE, ("vput: ref=%d %s\n", vp->v_refcnt, - vp->v_path)); + DPRINTF(VFSDB_VNODE, ("vput: ref=%d %s\n", vp->v_refcnt, vn_path(vp))); VNODE_LOCK(); vp->v_refcnt--; @@ -440,21 +453,21 @@ vnode_dump(void) "VLNK ", "VSOCK", "VFIFO" }; VNODE_LOCK(); - dprintf("Dump vnode\n"); - dprintf(" vnode mount type refcnt blkno path\n"); - dprintf(" -------- -------- ----- ------ -------- ------------------------------\n"); + kprintf("Dump vnode\n"); + kprintf(" vnode mount type refcnt blkno path\n"); + kprintf(" -------- -------- ----- ------ -------- ------------------------------\n"); for (i = 0; i < VNODE_BUCKETS; i++) { LIST_FOREACH(vp, &vnode_table[i], v_link) { mp = vp->v_mount; - dprintf(" %08x %08x %s %6d %8d %s%s\n", (u_int)vp, - (u_int)mp, type[vp->v_type], vp->v_refcnt, + kprintf(" %08x %08x %s %6d %8d %s%s\n", (u_long)vp, + (u_long)mp, type[vp->v_type], vp->v_refcnt, (strlen(mp->m_path) == 1) ? "\0" : mp->m_path, - vp->v_path); + vn_path(vp)); } } - dprintf("\n"); + kprintf("\n"); VNODE_UNLOCK(); } #endif