[PATCH v3] vfs_ceph: fix ntimes_fn callback

Michael Adam obnox at samba.org
Thu Mar 19 01:48:02 MDT 2015


Perfect, thanks for your patience!

I will push once I have heard back from Ira
or gotten any other reviewed-by.

Thanks - Michael

On 2015-03-19 at 09:58 +0800, Yan, Zheng wrote:
> add null timespec check for atime/mtime. Also add code that stores
> create_time by EA.
> 
> Signed-off-by: Yan, Zheng <zyan at redhat.com>
> ---
>  source3/modules/vfs_ceph.c | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
> index 0967428..c62d95f 100644
> --- a/source3/modules/vfs_ceph.c
> +++ b/source3/modules/vfs_ceph.c
> @@ -753,8 +753,26 @@ static int cephwrap_ntimes(struct vfs_handle_struct *handle,
>  {
>  	struct utimbuf buf;
>  	int result;
> -	buf.actime = ft->atime.tv_sec;
> -	buf.modtime = ft->mtime.tv_sec;
> +
> +	if (null_timespec(ft->atime)) {
> +		buf.actime = smb_fname->st.st_ex_atime.tv_sec;
> +	} else {
> +		buf.actime = ft->atime.tv_sec;
> +	}
> +	if (null_timespec(ft->mtime)) {
> +		buf.modtime = smb_fname->st.st_ex_mtime.tv_sec;
> +	} else {
> +		buf.modtime = ft->mtime.tv_sec;
> +	}
> +	if (!null_timespec(ft->create_time)) {
> +		set_create_timespec_ea(handle->conn, smb_fname,
> +				       ft->create_time);
> +	}
> +	if (buf.actime == smb_fname->st.st_ex_atime.tv_sec &&
> +	    buf.modtime == smb_fname->st.st_ex_mtime.tv_sec) {
> +		return 0;
> +	}
> +
>  	result = ceph_utime(handle->data, smb_fname->base_name, &buf);
>  	DEBUG(10, ("[CEPH] ntimes(%p, %s, {%ld, %ld, %ld, %ld}) = %d\n", handle, smb_fname_str_dbg(smb_fname),
>  				ft->mtime.tv_sec, ft->atime.tv_sec, ft->ctime.tv_sec,
> -- 
> 1.9.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150319/936a8951/attachment.pgp>


More information about the samba-technical mailing list