[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