The Samba-Bugzilla – Attachment 14765 Details for
Bug 13725
vfs_fruit (and vfs_streams_xattr) need to implement close VFS call
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch from master for 4.9 and 4.8
patch (text/plain), 5.36 KB, created by
Guenther Deschner
on 2019-01-11 11:05:48 UTC
(
hide
)
Description:
patch from master for 4.9 and 4.8
Filename:
MIME Type:
Creator:
Guenther Deschner
Created:
2019-01-11 11:05:48 UTC
Size:
5.36 KB
patch
obsolete
>From 61f8dbb76c8bcc1bfe43880146005aa834184a92 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> >Date: Tue, 18 Dec 2018 17:20:29 +0100 >Subject: [PATCH 1/2] s3-vfs-streams_xattr: add close call >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >https://bugzilla.samba.org/show_bug.cgi?id=13725 > >We cannot always rely on vfs_default to close the fake fds. This mostly is >relevant when used with another non-local VFS filesystem module such as >gluster. > >Guenther > >Signed-off-by: Günther Deschner <gd@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Thu Dec 20 07:18:20 CET 2018 on sn-devel-144 > >(cherry picked from commit 1b263ed631c86bf4117c9388fce3fa1f24cea4c9) >--- > source3/modules/vfs_streams_xattr.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > >diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c >index 87c5589395a..ae80effc544 100644 >--- a/source3/modules/vfs_streams_xattr.c >+++ b/source3/modules/vfs_streams_xattr.c >@@ -544,6 +544,31 @@ static int streams_xattr_open(vfs_handle_struct *handle, > return -1; > } > >+static int streams_xattr_close(vfs_handle_struct *handle, >+ files_struct *fsp) >+{ >+ int ret; >+ int fd; >+ >+ fd = fsp->fh->fd; >+ >+ DBG_DEBUG("streams_xattr_close called [%s] fd [%d]\n", >+ smb_fname_str_dbg(fsp->fsp_name), fd); >+ >+ if (!is_ntfs_stream_smb_fname(fsp->fsp_name)) { >+ return SMB_VFS_NEXT_CLOSE(handle, fsp); >+ } >+ >+ if (is_ntfs_default_stream_smb_fname(fsp->fsp_name)) { >+ return SMB_VFS_NEXT_CLOSE(handle, fsp); >+ } >+ >+ ret = close(fd); >+ fsp->fh->fd = -1; >+ >+ return ret; >+} >+ > static int streams_xattr_unlink(vfs_handle_struct *handle, > const struct smb_filename *smb_fname) > { >@@ -1643,6 +1668,7 @@ static struct vfs_fn_pointers vfs_streams_xattr_fns = { > .fs_capabilities_fn = streams_xattr_fs_capabilities, > .connect_fn = streams_xattr_connect, > .open_fn = streams_xattr_open, >+ .close_fn = streams_xattr_close, > .stat_fn = streams_xattr_stat, > .fstat_fn = streams_xattr_fstat, > .lstat_fn = streams_xattr_lstat, >-- >2.20.1 > > >From 9c59a5a28cf4493dbbf3d8175c879891bf6990fa Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> >Date: Tue, 18 Dec 2018 17:18:33 +0100 >Subject: [PATCH 2/2] s3-vfs-fruit: add close call >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >https://bugzilla.samba.org/show_bug.cgi?id=13725 > >We cannot always rely on vfs_default to close the fake fds. This mostly is >relevant when used with another non-local VFS filesystem module such as >gluster. > >Guenther > >Signed-off-by: Günther Deschner <gd@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Fri Dec 21 07:20:49 CET 2018 on sn-devel-144 > >(cherry picked from commit ba016939aa91e0806f509c8b8ce9506bebceb7e5) >--- > source3/modules/vfs_fruit.c | 82 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 82 insertions(+) > >diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c >index 9d6efb2c38c..90fcd5d5d34 100644 >--- a/source3/modules/vfs_fruit.c >+++ b/source3/modules/vfs_fruit.c >@@ -3719,6 +3719,87 @@ static int fruit_open(vfs_handle_struct *handle, > return fd; > } > >+static int fruit_close_meta(vfs_handle_struct *handle, >+ files_struct *fsp) >+{ >+ int ret; >+ struct fruit_config_data *config = NULL; >+ >+ SMB_VFS_HANDLE_GET_DATA(handle, config, >+ struct fruit_config_data, return -1); >+ >+ switch (config->meta) { >+ case FRUIT_META_STREAM: >+ ret = SMB_VFS_NEXT_CLOSE(handle, fsp); >+ break; >+ >+ case FRUIT_META_NETATALK: >+ ret = close(fsp->fh->fd); >+ fsp->fh->fd = -1; >+ break; >+ >+ default: >+ DBG_ERR("Unexpected meta config [%d]\n", config->meta); >+ return -1; >+ } >+ >+ return ret; >+} >+ >+ >+static int fruit_close_rsrc(vfs_handle_struct *handle, >+ files_struct *fsp) >+{ >+ int ret; >+ struct fruit_config_data *config = NULL; >+ >+ SMB_VFS_HANDLE_GET_DATA(handle, config, >+ struct fruit_config_data, return -1); >+ >+ switch (config->rsrc) { >+ case FRUIT_RSRC_STREAM: >+ case FRUIT_RSRC_ADFILE: >+ ret = SMB_VFS_NEXT_CLOSE(handle, fsp); >+ break; >+ >+ case FRUIT_RSRC_XATTR: >+ ret = close(fsp->fh->fd); >+ fsp->fh->fd = -1; >+ break; >+ >+ default: >+ DBG_ERR("Unexpected rsrc config [%d]\n", config->rsrc); >+ return -1; >+ } >+ >+ return ret; >+} >+ >+static int fruit_close(vfs_handle_struct *handle, >+ files_struct *fsp) >+{ >+ int ret; >+ int fd; >+ >+ fd = fsp->fh->fd; >+ >+ DBG_DEBUG("Path [%s] fd [%d]\n", smb_fname_str_dbg(fsp->fsp_name), fd); >+ >+ if (!is_ntfs_stream_smb_fname(fsp->fsp_name)) { >+ return SMB_VFS_NEXT_CLOSE(handle, fsp); >+ } >+ >+ if (is_afpinfo_stream(fsp->fsp_name)) { >+ ret = fruit_close_meta(handle, fsp); >+ } else if (is_afpresource_stream(fsp->fsp_name)) { >+ ret = fruit_close_rsrc(handle, fsp); >+ } else { >+ ret = SMB_VFS_NEXT_CLOSE(handle, fsp); >+ } >+ >+ return ret; >+} >+ > static int fruit_rename(struct vfs_handle_struct *handle, > const struct smb_filename *smb_fname_src, > const struct smb_filename *smb_fname_dst) >@@ -7024,6 +7105,7 @@ static struct vfs_fn_pointers vfs_fruit_fns = { > .rename_fn = fruit_rename, > .rmdir_fn = fruit_rmdir, > .open_fn = fruit_open, >+ .close_fn = fruit_close, > .pread_fn = fruit_pread, > .pwrite_fn = fruit_pwrite, > .pread_send_fn = fruit_pread_send, >-- >2.20.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
gd
:
review?
(
jra
)
slow
:
review+
Actions:
View
Attachments on
bug 13725
: 14765