diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-08-02 08:53:24 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:29:08 -0500 |
commit | 4b15f31f106f1dd69fdda721b5c3b787f5245a80 (patch) | |
tree | 34e14d007c0dc257723fff1379cb0968bfb6f410 /source3/include | |
parent | a0a9a301d258ffdd6e1f35a9d4d32c555237556c (diff) | |
download | samba-4b15f31f106f1dd69fdda721b5c3b787f5245a80.tar.gz samba-4b15f31f106f1dd69fdda721b5c3b787f5245a80.tar.bz2 samba-4b15f31f106f1dd69fdda721b5c3b787f5245a80.zip |
r24120: add a file_id_create() hook into the VFS layer
it's needed for some cluster filesystems to
overload this function.
metze
(This used to be commit cdaa24e8047399002e4b287a31a8340a665e580f)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/vfs.h | 6 | ||||
-rw-r--r-- | source3/include/vfs_macros.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/source3/include/vfs.h b/source3/include/vfs.h index b136750e7c..768c9fbcab 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -71,6 +71,7 @@ /* Changed to version21 to add chflags operation -- jpeach */ /* Changed to version22 to add lchown operation -- jra */ /* Leave at 22 - not yet released. But change set_nt_acl to return an NTSTATUS. jra. */ +/* Leave at 22 - not yet released. Add file_id_create operation. --metze */ #define SMB_VFS_INTERFACE_VERSION 22 @@ -162,6 +163,7 @@ typedef enum _vfs_op_type { SMB_VFS_OP_REALPATH, SMB_VFS_OP_NOTIFY_WATCH, SMB_VFS_OP_CHFLAGS, + SMB_VFS_OP_FILE_ID_CREATE, /* NT ACL operations. */ @@ -295,7 +297,8 @@ struct vfs_ops { struct notify_event *ev), void *private_data, void *handle_p); int (*chflags)(struct vfs_handle_struct *handle, const char *path, uint flags); - + struct file_id (*file_id_create)(struct vfs_handle_struct *handle, SMB_DEV_T dev, SMB_INO_T inode); + /* NT ACL operations. */ size_t (*fget_nt_acl)(struct vfs_handle_struct *handle, struct files_struct *fsp, int fd, uint32 security_info, struct security_descriptor **ppdesc); @@ -414,6 +417,7 @@ struct vfs_ops { struct vfs_handle_struct *realpath; struct vfs_handle_struct *notify_watch; struct vfs_handle_struct *chflags; + struct vfs_handle_struct *file_id_create; /* NT ACL operations. */ diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index 9957b585de..ac22ff5204 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -80,6 +80,7 @@ #define SMB_VFS_REALPATH(conn, path, resolved_path) ((conn)->vfs.ops.realpath((conn)->vfs.handles.realpath, (path), (resolved_path))) #define SMB_VFS_NOTIFY_WATCH(conn, ctx, e, callback, private_data, handle_p) ((conn)->vfs.ops.notify_watch((conn)->vfs.handles.notify_watch, (ctx), (e), (callback), (private_data), (handle_p))) #define SMB_VFS_CHFLAGS(conn, path, flags) ((conn)->vfs.ops.chflags((conn)->vfs.handles.chflags, (path), (flags))) +#define SMB_VFS_FILE_ID_CREATE(conn, dev, inode) ((conn)->vfs.ops.file_id_create((conn)->vfs.handles.file_id_create, (dev), (inode))) /* NT ACL operations. */ #define SMB_VFS_FGET_NT_ACL(fsp, fd, security_info, ppdesc) ((fsp)->conn->vfs.ops.fget_nt_acl((fsp)->conn->vfs.handles.fget_nt_acl, (fsp), (fd), (security_info), (ppdesc))) @@ -197,6 +198,7 @@ #define SMB_VFS_OPAQUE_REALPATH(conn, path, resolved_path) ((conn)->vfs_opaque.ops.realpath((conn)->vfs_opaque.handles.realpath, (path), (resolved_path))) #define SMB_VFS_OPAQUE_NOTIFY_WATCH(conn, ctx, e, callback, private_data, handle_p) ((conn)->vfs_opaque.ops.notify_watch((conn)->vfs_opaque.handles.notify_watch, (ctx), (e), (callback), (private_data), (handle_p))) #define SMB_VFS_OPAQUE_CHFLAGS(conn, path, flags) ((conn)->vfs_opaque.ops.chflags((conn)->vfs_opaque.handles.chflags, (path), (flags))) +#define SMB_VFS_OPAQUE_FILE_ID_CREATE(conn, dev, inode) ((conn)->vfs.ops_opaque.file_id_create((conn)->vfs_opaque.handles.file_id_create, (dev), (inode))) /* NT ACL operations. */ #define SMB_VFS_OPAQUE_FGET_NT_ACL(fsp, fd, security_info, ppdesc) ((fsp)->conn->vfs_opaque.ops.fget_nt_acl((fsp)->conn->vfs_opaque.handles.fget_nt_acl, (fsp), (fd), (security_info), (ppdesc))) @@ -315,6 +317,7 @@ #define SMB_VFS_NEXT_REALPATH(handle, path, resolved_path) ((handle)->vfs_next.ops.realpath((handle)->vfs_next.handles.realpath, (path), (resolved_path))) #define SMB_VFS_NEXT_NOTIFY_WATCH(conn, ctx, e, callback, private_data, handle_p) ((conn)->vfs_next.ops.notify_watch((conn)->vfs_next.handles.notify_watch, (ctx), (e), (callback), (private_data), (handle_p))) #define SMB_VFS_NEXT_CHFLAGS(handle, path, flags) ((handle)->vfs_next.ops.chflags((handle)->vfs_next.handles.chflags, (path), (flags))) +#define SMB_VFS_NEXT_FILE_ID_CREATE(handle, dev, inode) ((handle)->vfs_next.ops.file_id_create((handle)->vfs_next.handles.file_id_create, (dev), (inode))) /* NT ACL operations. */ #define SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, fd, security_info, ppdesc) ((handle)->vfs_next.ops.fget_nt_acl((handle)->vfs_next.handles.fget_nt_acl, (fsp), (fd), (security_info), (ppdesc))) |