From: Ralph Boehme Date: Fri, 17 May 2019 09:47:26 +0000 (+0200) Subject: vfs_fruit: pass handle to ad_read_rsrc() and all the way down X-Git-Url: http://git.samba.org/?p=metze%2Fsamba%2Fwip.git;a=commitdiff_plain;h=661dfa4a19673fdb30d5bf36279cdf867454b947 vfs_fruit: pass handle to ad_read_rsrc() and all the way down On the course of removing ad_handle from struct adouble, step 5. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13968 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index 924052a203f6..0e2c07c5fd6f 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -1684,7 +1684,8 @@ static int ad_open(vfs_handle_struct *handle, return 0; } -static ssize_t ad_read_rsrc_xattr(struct adouble *ad) +static ssize_t ad_read_rsrc_xattr(vfs_handle_struct *handle, + struct adouble *ad) { int ret; SMB_STRUCT_STAT st; @@ -1692,7 +1693,7 @@ static ssize_t ad_read_rsrc_xattr(struct adouble *ad) /* FIXME: direct sys_fstat(), don't have an fsp */ ret = sys_fstat(ad->ad_fd, &st, lp_fake_directory_create_times( - SNUM(ad->ad_handle->conn))); + SNUM(handle->conn))); if (ret != 0) { return -1; } @@ -1701,7 +1702,8 @@ static ssize_t ad_read_rsrc_xattr(struct adouble *ad) return st.st_ex_size; } -static ssize_t ad_read_rsrc_adouble(struct adouble *ad, +static ssize_t ad_read_rsrc_adouble(vfs_handle_struct *handle, + struct adouble *ad, const struct smb_filename *smb_fname) { SMB_STRUCT_STAT sbuf; @@ -1712,7 +1714,7 @@ static ssize_t ad_read_rsrc_adouble(struct adouble *ad, bool ok; ret = sys_fstat(ad->ad_fd, &sbuf, lp_fake_directory_create_times( - SNUM(ad->ad_handle->conn))); + SNUM(handle->conn))); if (ret != 0) { return -1; } @@ -1769,19 +1771,20 @@ static ssize_t ad_read_rsrc_adouble(struct adouble *ad, /** * Read and parse resource fork, either ._ AppleDouble file or xattr **/ -static ssize_t ad_read_rsrc(struct adouble *ad, +static ssize_t ad_read_rsrc(vfs_handle_struct *handle, + struct adouble *ad, const struct smb_filename *smb_fname) { struct fruit_config_data *config = NULL; ssize_t len; - SMB_VFS_HANDLE_GET_DATA(ad->ad_handle, config, + SMB_VFS_HANDLE_GET_DATA(handle, config, struct fruit_config_data, return -1); if (config->rsrc == FRUIT_RSRC_XATTR) { - len = ad_read_rsrc_xattr(ad); + len = ad_read_rsrc_xattr(handle, ad); } else { - len = ad_read_rsrc_adouble(ad, smb_fname); + len = ad_read_rsrc_adouble(handle, ad, smb_fname); } return len; @@ -1798,7 +1801,7 @@ static ssize_t ad_read(vfs_handle_struct *handle, case ADOUBLE_META: return ad_read_meta(handle, ad, smb_fname); case ADOUBLE_RSRC: - return ad_read_rsrc(ad, smb_fname); + return ad_read_rsrc(handle, ad, smb_fname); default: return -1; }