diff options
author | ck153898 <none@none> | 2007-12-10 12:25:48 -0800 |
---|---|---|
committer | ck153898 <none@none> | 2007-12-10 12:25:48 -0800 |
commit | b38f097029665f4ece801ca129913d36f757b49c (patch) | |
tree | 5ed7f4d7fb0fdae99be722118762b9249191a3d4 /usr/src/uts/common/fs/objfs | |
parent | 423908e1eda59d79f1f867966cafecd54cfaa635 (diff) | |
download | illumos-gate-b38f097029665f4ece801ca129913d36f757b49c.tar.gz |
6627223 gfs needs to support extended dirent flags
Diffstat (limited to 'usr/src/uts/common/fs/objfs')
-rw-r--r-- | usr/src/uts/common/fs/objfs/objfs_root.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/usr/src/uts/common/fs/objfs/objfs_root.c b/usr/src/uts/common/fs/objfs/objfs_root.c index 06f06d35f9..1b108616ca 100644 --- a/usr/src/uts/common/fs/objfs/objfs_root.c +++ b/usr/src/uts/common/fs/objfs/objfs_root.c @@ -40,8 +40,8 @@ extern int last_module_id; static int objfs_root_do_lookup(vnode_t *, const char *, vnode_t **, ino64_t *, cred_t *); -static int objfs_root_do_readdir(vnode_t *, struct dirent64 *, int *, - offset_t *, offset_t *, void *); +static int objfs_root_do_readdir(vnode_t *, void *, int *, + offset_t *, offset_t *, void *, int); vnode_t * objfs_create_root(vfs_t *vfsp) @@ -105,11 +105,16 @@ objfs_root_do_lookup(vnode_t *vp, const char *nm, vnode_t **vpp, ino64_t *inop, /* ARGSUSED */ int -objfs_root_do_readdir(vnode_t *vp, struct dirent64 *dp, int *eofp, - offset_t *offp, offset_t *nextp, void *data) +objfs_root_do_readdir(vnode_t *vp, void *dp, int *eofp, + offset_t *offp, offset_t *nextp, void *data, int flags) { struct modctl **mpp = data; struct modctl *mp = *mpp; + struct dirent64 *odp = dp; + + /* objfs does not support V_RDDIR_ENTFLAGS */ + if (flags & V_RDDIR_ENTFLAGS) + return (ENOTSUP); mutex_enter(&mod_lock); @@ -142,8 +147,8 @@ objfs_root_do_readdir(vnode_t *vp, struct dirent64 *dp, int *eofp, */ mutex_exit(&mod_lock); - (void) strncpy(dp->d_name, mp->mod_modname, OBJFS_NAME_MAX); - dp->d_ino = OBJFS_INO_ODIR(mp->mod_id); + (void) strncpy(odp->d_name, mp->mod_modname, OBJFS_NAME_MAX); + odp->d_ino = OBJFS_INO_ODIR(mp->mod_id); *offp = mp->mod_id; *nextp = mp->mod_id + 1; @@ -157,7 +162,7 @@ objfs_root_readdir(vnode_t *vp, uio_t *uiop, cred_t *cr, int *eofp, { struct modctl *mp = &modules; - return (gfs_dir_readdir(vp, uiop, eofp, &mp, cr, ct)); + return (gfs_dir_readdir(vp, uiop, eofp, &mp, cr, ct, flags)); } const fs_operation_def_t objfs_tops_root[] = { |