diff options
author | Steven Danneman <steven.danneman@isilon.com> | 2009-01-22 20:14:38 -0800 |
---|---|---|
committer | Steven Danneman <steven.danneman@isilon.com> | 2009-02-09 23:56:16 -0800 |
commit | af0e199b31ea4132e369508d72888757887b3327 (patch) | |
tree | 38be76f86b5c7b226785ed8c5cec559fab775756 /source3/modules/vfs_default.c | |
parent | 9a7491e83177ba32e30f29e1b84b8b8be9888953 (diff) | |
download | samba-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.c | 8 |
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; } |