summaryrefslogtreecommitdiff
path: root/source3/modules/vfs_default.c
diff options
context:
space:
mode:
authorSteven Danneman <steven.danneman@isilon.com>2009-01-22 20:14:38 -0800
committerSteven Danneman <steven.danneman@isilon.com>2009-02-09 23:56:16 -0800
commitaf0e199b31ea4132e369508d72888757887b3327 (patch)
tree38be76f86b5c7b226785ed8c5cec559fab775756 /source3/modules/vfs_default.c
parent9a7491e83177ba32e30f29e1b84b8b8be9888953 (diff)
downloadsamba-af0e199b31ea4132e369508d72888757887b3327.tar.gz
samba-af0e199b31ea4132e369508d72888757887b3327.tar.bz2
samba-af0e199b31ea4132e369508d72888757887b3327.zip
Add an optional SMB_STRUCT_SMB parameter to VFS_OP_READDIR
* this allows VFS implementations that prefetch stat information on readdir to return it through one VFS call * backwards compatibility is maintained by passing in NULL * if the system readdir doesn't return stat info, the stat struct is set to invalid
Diffstat (limited to 'source3/modules/vfs_default.c')
-rw-r--r--source3/modules/vfs_default.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 679be57558..7d61191a69 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -113,12 +113,18 @@ static SMB_STRUCT_DIR *vfswrap_opendir(vfs_handle_struct *handle, const char *f
return result;
}
-static SMB_STRUCT_DIRENT *vfswrap_readdir(vfs_handle_struct *handle, SMB_STRUCT_DIR *dirp)
+static SMB_STRUCT_DIRENT *vfswrap_readdir(vfs_handle_struct *handle,
+ SMB_STRUCT_DIR *dirp,
+ SMB_STRUCT_STAT *sbuf)
{
SMB_STRUCT_DIRENT *result;
START_PROFILE(syscall_readdir);
result = sys_readdir(dirp);
+ /* Default Posix readdir() does not give us stat info.
+ * Set to invalid to indicate we didn't return this info. */
+ if (sbuf)
+ SET_STAT_INVALID(*sbuf);
END_PROFILE(syscall_readdir);
return result;
}