summaryrefslogtreecommitdiffstats
path: root/source3/modules/vfs_default.c
diff options
context:
space:
mode:
authorSteven Danneman <steven.danneman@isilon.com>2009-01-26 20:14:32 -0800
committerSteven Danneman <steven.danneman@isilon.com>2009-02-09 23:56:17 -0800
commit11f60a62a1d7633e9a8ec62da18ed9ababa694df (patch)
treecbf46c95dd109ef73e08ef2fba676268dbaa5943 /source3/modules/vfs_default.c
parent6272f4c2f453c509b8a3893d4c2ac5fc356b348d (diff)
downloadsamba-11f60a62a1d7633e9a8ec62da18ed9ababa694df.tar.gz
samba-11f60a62a1d7633e9a8ec62da18ed9ababa694df.tar.xz
samba-11f60a62a1d7633e9a8ec62da18ed9ababa694df.zip
s3: OneFS bulk directory enumeration support
OneFS provides the bulk directory enumeration syscall readdirplus(). This syscall has the same semantics as the NFSv3 READDIRPLUS command, returning a batch of directory entries with prefetched stat information via one syscall. This commit wraps the readdirplus() call in the existing POSIX readdir/seekdir VFS interface. By default a batch of 128 directory entries are optimistically read from the kernel into a global cache, and fed to iterative calls of VFS_OP_READDIR. The global buffers could be avoided in the future by hanging connection specific buffers off the conn struct. Added new parameter "onefs:use readdirplus" which toggles usage of this code on or off.
Diffstat (limited to 'source3/modules/vfs_default.c')
-rw-r--r--source3/modules/vfs_default.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index cb56690dbb8..4b123ab03ed 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -210,7 +210,6 @@ static void vfswrap_init_search_op(vfs_handle_struct *handle,
SMB_STRUCT_DIR *dirp)
{
/* Default behavior is a NOOP */
- return;
}
/* File operations */
@@ -1456,7 +1455,7 @@ static vfs_op_tuple vfs_default_ops[] = {
SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(vfswrap_closedir), SMB_VFS_OP_CLOSEDIR,
SMB_VFS_LAYER_OPAQUE},
- {SMB_VFS_OP(vfswrap_init_search_op), SMB_VFS_OP_INIT_SEARCH_OP,
+ {SMB_VFS_OP(vfswrap_init_search_op), SMB_VFS_OP_INIT_SEARCH_OP,
SMB_VFS_LAYER_OPAQUE},
/* File operations */