The branch, master has been updated via 2b80014 vfs: ceph: convert to new DBG_* macros via a9c5be3 VFS: convert to using ceph_statx structures and functions, when available from b1ade58 s4:torture: Add tortue test for AddPrinterDriverEx with COPY_FROM_DIRECTORY
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 2b8001475bc87e4e0e2057dc31cf34f4d61331c7 Author: Jeff Layton <jlay...@samba.org> Date: Fri Nov 18 07:31:21 2016 -0500 vfs: ceph: convert to new DBG_* macros ...per Jeremy's recommendation. Signed-off-by: Jeff Layton <jlay...@redhat.com> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Mon Nov 21 03:34:26 CET 2016 on sn-devel-144 commit a9c5be394da4f20bcfea7f6d4f5919d5c0f90219 Author: Jeff Layton <jlay...@samba.org> Date: Thu Nov 17 13:13:57 2016 -0500 VFS: convert to using ceph_statx structures and functions, when available Add a configure test for the ceph_statx function, and use that to determine whether to compile in new functions that use it and its variants, or whether to use a the older code that fetches birthtimes from an xattr. For cephwrap_lstat, we can use ceph_statx with the AT_SYMLINK_NOFOLLOW flag to get the right lookup semantics. For setting the times via cephwrap_ntimes, We can just use ceph_setattrx and pass them all in at the same time. Signed-off-by: Jeff Layton <jlay...@redhat.com> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/modules/vfs_ceph.c | 431 +++++++++++++++++++++++++++++---------------- source3/wscript | 2 + 2 files changed, 284 insertions(+), 149 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index 8e02683..75233ef 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -96,30 +96,30 @@ static int cephwrap_connect(struct vfs_handle_struct *handle, const char *servi conf_file = lp_parm_const_string(SNUM(handle->conn), "ceph", "config_file", NULL); - DEBUG(2, ( "[CEPH] calling: ceph_create\n" )); + DBG_DEBUG( "[CEPH] calling: ceph_create\n" ); ret = ceph_create(&cmount, NULL); if (ret) goto err_out; if (conf_file) { /* Override the config file */ - DEBUG(2, ( "[CEPH] calling: ceph_conf_read_file\n" )); + DBG_DEBUG( "[CEPH] calling: ceph_conf_read_file\n" ); ret = ceph_conf_read_file(cmount, conf_file); } else { - DEBUG(2, ( "[CEPH] calling: ceph_conf_read_file with %s\n", conf_file)); + DBG_DEBUG( "[CEPH] calling: ceph_conf_read_file with %s\n", conf_file); ret = ceph_conf_read_file(cmount, NULL); } if (ret) goto err_out; - DEBUG(2, ( "[CEPH] calling: ceph_conf_get\n" )); + DBG_DEBUG( "[CEPH] calling: ceph_conf_get\n" ); ret = ceph_conf_get(cmount, "log file", buf, sizeof(buf)); if (ret < 0) goto err_out; - DEBUG(2, ("[CEPH] calling: ceph_mount\n")); + DBG_DEBUG("[CEPH] calling: ceph_mount\n"); ret = ceph_mount(cmount, NULL); if (ret < 0) goto err_out; @@ -138,20 +138,20 @@ err_out: /* * Handle the error correctly. Ceph returns -errno. */ - DEBUG(2, ("[CEPH] Error return: %s\n", strerror(-ret))); + DBG_DEBUG("[CEPH] Error return: %s\n", strerror(-ret)); WRAP_RETURN(ret); } static void cephwrap_disconnect(struct vfs_handle_struct *handle) { if (!cmount) { - DEBUG(0, ("[CEPH] Error, ceph not mounted\n")); + DBG_ERR("[CEPH] Error, ceph not mounted\n"); return; } /* Should we unmount/shutdown? Only if the last disconnect? */ if (--cmount_cnt) { - DEBUG(10, ("[CEPH] Not shuting down CEPH because still more connections\n")); + DBG_DEBUG("[CEPH] Not shuting down CEPH because still more connections\n"); return; } @@ -176,11 +176,11 @@ static uint64_t cephwrap_disk_free(struct vfs_handle_struct *handle, *bsize = statvfs_buf.f_bsize; *dfree = statvfs_buf.f_bavail; *dsize = statvfs_buf.f_blocks; - DEBUG(10, ("[CEPH] bsize: %llu, dfree: %llu, dsize: %llu\n", - llu(*bsize), llu(*dfree), llu(*dsize))); + DBG_DEBUG("[CEPH] bsize: %llu, dfree: %llu, dsize: %llu\n", + llu(*bsize), llu(*dfree), llu(*dsize)); return *dfree; } else { - DEBUG(10, ("[CEPH] ceph_statfs returned %d\n", ret)); + DBG_DEBUG("[CEPH] ceph_statfs returned %d\n", ret); WRAP_RETURN(ret); } } @@ -244,9 +244,9 @@ static int cephwrap_statvfs(struct vfs_handle_struct *handle, const char *path, statbuf->TotalFileNodes = statvfs_buf.f_files; statbuf->FreeFileNodes = statvfs_buf.f_ffree; statbuf->FsIdentifier = statvfs_buf.f_fsid; - DEBUG(10, ("[CEPH] f_bsize: %ld, f_blocks: %ld, f_bfree: %ld, f_bavail: %ld\n", + DBG_DEBUG("[CEPH] f_bsize: %ld, f_blocks: %ld, f_bfree: %ld, f_bavail: %ld\n", (long int)statvfs_buf.f_bsize, (long int)statvfs_buf.f_blocks, - (long int)statvfs_buf.f_bfree, (long int)statvfs_buf.f_bavail)); + (long int)statvfs_buf.f_bfree, (long int)statvfs_buf.f_bavail); } return ret; } @@ -259,7 +259,7 @@ static DIR *cephwrap_opendir(struct vfs_handle_struct *handle, { int ret = 0; struct ceph_dir_result *result; - DEBUG(10, ("[CEPH] opendir(%p, %s)\n", handle, smb_fname->base_name)); + DBG_DEBUG("[CEPH] opendir(%p, %s)\n", handle, smb_fname->base_name); /* Returns NULL if it does not exist or there are problems ? */ ret = ceph_opendir(handle->data, smb_fname->base_name, &result); @@ -268,7 +268,7 @@ static DIR *cephwrap_opendir(struct vfs_handle_struct *handle, errno = -ret; /* We return result which is NULL in this case */ } - DEBUG(10, ("[CEPH] opendir(...) = %d\n", ret)); + DBG_DEBUG("[CEPH] opendir(...) = %d\n", ret); return (DIR *) result; } @@ -279,7 +279,7 @@ static DIR *cephwrap_fdopendir(struct vfs_handle_struct *handle, { int ret = 0; struct ceph_dir_result *result; - DEBUG(10, ("[CEPH] fdopendir(%p, %p)\n", handle, fsp)); + DBG_DEBUG("[CEPH] fdopendir(%p, %p)\n", handle, fsp); ret = ceph_opendir(handle->data, fsp->fsp_name->base_name, &result); if (ret < 0) { @@ -287,7 +287,7 @@ static DIR *cephwrap_fdopendir(struct vfs_handle_struct *handle, errno = -ret; /* We return result which is NULL in this case */ } - DEBUG(10, ("[CEPH] fdopendir(...) = %d\n", ret)); + DBG_DEBUG("[CEPH] fdopendir(...) = %d\n", ret); return (DIR *) result; } @@ -297,9 +297,9 @@ static struct dirent *cephwrap_readdir(struct vfs_handle_struct *handle, { struct dirent *result; - DEBUG(10, ("[CEPH] readdir(%p, %p)\n", handle, dirp)); + DBG_DEBUG("[CEPH] readdir(%p, %p)\n", handle, dirp); result = ceph_readdir(handle->data, (struct ceph_dir_result *) dirp); - DEBUG(10, ("[CEPH] readdir(...) = %p\n", result)); + DBG_DEBUG("[CEPH] readdir(...) = %p\n", result); /* Default Posix readdir() does not give us stat info. * Set to invalid to indicate we didn't return this info. */ @@ -310,22 +310,22 @@ static struct dirent *cephwrap_readdir(struct vfs_handle_struct *handle, static void cephwrap_seekdir(struct vfs_handle_struct *handle, DIR *dirp, long offset) { - DEBUG(10, ("[CEPH] seekdir(%p, %p, %ld)\n", handle, dirp, offset)); + DBG_DEBUG("[CEPH] seekdir(%p, %p, %ld)\n", handle, dirp, offset); ceph_seekdir(handle->data, (struct ceph_dir_result *) dirp, offset); } static long cephwrap_telldir(struct vfs_handle_struct *handle, DIR *dirp) { long ret; - DEBUG(10, ("[CEPH] telldir(%p, %p)\n", handle, dirp)); + DBG_DEBUG("[CEPH] telldir(%p, %p)\n", handle, dirp); ret = ceph_telldir(handle->data, (struct ceph_dir_result *) dirp); - DEBUG(10, ("[CEPH] telldir(...) = %ld\n", ret)); + DBG_DEBUG("[CEPH] telldir(...) = %ld\n", ret); WRAP_RETURN(ret); } static void cephwrap_rewinddir(struct vfs_handle_struct *handle, DIR *dirp) { - DEBUG(10, ("[CEPH] rewinddir(%p, %p)\n", handle, dirp)); + DBG_DEBUG("[CEPH] rewinddir(%p, %p)\n", handle, dirp); ceph_rewinddir(handle->data, (struct ceph_dir_result *) dirp); } @@ -338,7 +338,7 @@ static int cephwrap_mkdir(struct vfs_handle_struct *handle, char *parent = NULL; const char *path = smb_fname->base_name; - DEBUG(10, ("[CEPH] mkdir(%p, %s)\n", handle, path)); + DBG_DEBUG("[CEPH] mkdir(%p, %s)\n", handle, path); if (lp_inherit_acls(SNUM(handle->conn)) && parent_dirname(talloc_tos(), path, &parent, NULL) @@ -377,9 +377,9 @@ static int cephwrap_rmdir(struct vfs_handle_struct *handle, { int result; - DEBUG(10, ("[CEPH] rmdir(%p, %s)\n", handle, smb_fname->base_name)); + DBG_DEBUG("[CEPH] rmdir(%p, %s)\n", handle, smb_fname->base_name); result = ceph_rmdir(handle->data, smb_fname->base_name); - DEBUG(10, ("[CEPH] rmdir(...) = %d\n", result)); + DBG_DEBUG("[CEPH] rmdir(...) = %d\n", result); WRAP_RETURN(result); } @@ -387,9 +387,9 @@ static int cephwrap_closedir(struct vfs_handle_struct *handle, DIR *dirp) { int result; - DEBUG(10, ("[CEPH] closedir(%p, %p)\n", handle, dirp)); + DBG_DEBUG("[CEPH] closedir(%p, %p)\n", handle, dirp); result = ceph_closedir(handle->data, (struct ceph_dir_result *) dirp); - DEBUG(10, ("[CEPH] closedir(...) = %d\n", result)); + DBG_DEBUG("[CEPH] closedir(...) = %d\n", result); WRAP_RETURN(result); } @@ -400,7 +400,8 @@ static int cephwrap_open(struct vfs_handle_struct *handle, files_struct *fsp, int flags, mode_t mode) { int result = -ENOENT; - DEBUG(10, ("[CEPH] open(%p, %s, %p, %d, %d)\n", handle, smb_fname_str_dbg(smb_fname), fsp, flags, mode)); + DBG_DEBUG("[CEPH] open(%p, %s, %p, %d, %d)\n", handle, + smb_fname_str_dbg(smb_fname), fsp, flags, mode); if (smb_fname->stream_name) { goto out; @@ -408,7 +409,7 @@ static int cephwrap_open(struct vfs_handle_struct *handle, result = ceph_open(handle->data, smb_fname->base_name, flags, mode); out: - DEBUG(10, ("[CEPH] open(...) = %d\n", result)); + DBG_DEBUG("[CEPH] open(...) = %d\n", result); WRAP_RETURN(result); } @@ -416,9 +417,9 @@ static int cephwrap_close(struct vfs_handle_struct *handle, files_struct *fsp) { int result; - DEBUG(10, ("[CEPH] close(%p, %p)\n", handle, fsp)); + DBG_DEBUG("[CEPH] close(%p, %p)\n", handle, fsp); result = ceph_close(handle->data, fsp->fh->fd); - DEBUG(10, ("[CEPH] close(...) = %d\n", result)); + DBG_DEBUG("[CEPH] close(...) = %d\n", result); WRAP_RETURN(result); } @@ -427,11 +428,11 @@ static ssize_t cephwrap_read(struct vfs_handle_struct *handle, files_struct *fsp { ssize_t result; - DEBUG(10, ("[CEPH] read(%p, %p, %p, %llu)\n", handle, fsp, data, llu(n))); + DBG_DEBUG("[CEPH] read(%p, %p, %p, %llu)\n", handle, fsp, data, llu(n)); /* Using -1 for the offset means read/write rather than pread/pwrite */ result = ceph_read(handle->data, fsp->fh->fd, data, n, -1); - DEBUG(10, ("[CEPH] read(...) = %llu\n", llu(result))); + DBG_DEBUG("[CEPH] read(...) = %llu\n", llu(result)); WRAP_RETURN(result); } @@ -440,10 +441,10 @@ static ssize_t cephwrap_pread(struct vfs_handle_struct *handle, files_struct *fs { ssize_t result; - DEBUG(10, ("[CEPH] pread(%p, %p, %p, %llu, %llu)\n", handle, fsp, data, llu(n), llu(offset))); + DBG_DEBUG("[CEPH] pread(%p, %p, %p, %llu, %llu)\n", handle, fsp, data, llu(n), llu(offset)); result = ceph_read(handle->data, fsp->fh->fd, data, n, offset); - DEBUG(10, ("[CEPH] pread(...) = %llu\n", llu(result))); + DBG_DEBUG("[CEPH] pread(...) = %llu\n", llu(result)); WRAP_RETURN(result); } @@ -452,11 +453,11 @@ static ssize_t cephwrap_write(struct vfs_handle_struct *handle, files_struct *fs { ssize_t result; - DEBUG(10, ("[CEPH] write(%p, %p, %p, %llu)\n", handle, fsp, data, llu(n))); + DBG_DEBUG("[CEPH] write(%p, %p, %p, %llu)\n", handle, fsp, data, llu(n)); result = ceph_write(handle->data, fsp->fh->fd, data, n, -1); - DEBUG(10, ("[CEPH] write(...) = %llu\n", llu(result))); + DBG_DEBUG("[CEPH] write(...) = %llu\n", llu(result)); if (result < 0) { WRAP_RETURN(result); } @@ -469,9 +470,9 @@ static ssize_t cephwrap_pwrite(struct vfs_handle_struct *handle, files_struct *f { ssize_t result; - DEBUG(10, ("[CEPH] pwrite(%p, %p, %p, %llu, %llu)\n", handle, fsp, data, llu(n), llu(offset))); + DBG_DEBUG("[CEPH] pwrite(%p, %p, %p, %llu, %llu)\n", handle, fsp, data, llu(n), llu(offset)); result = ceph_write(handle->data, fsp->fh->fd, data, n, offset); - DEBUG(10, ("[CEPH] pwrite(...) = %llu\n", llu(result))); + DBG_DEBUG("[CEPH] pwrite(...) = %llu\n", llu(result)); WRAP_RETURN(result); } @@ -479,7 +480,7 @@ static off_t cephwrap_lseek(struct vfs_handle_struct *handle, files_struct *fsp, { off_t result = 0; - DEBUG(10, ("[CEPH] cephwrap_lseek\n")); + DBG_DEBUG("[CEPH] cephwrap_lseek\n"); /* Cope with 'stat' file opens. */ if (fsp->fh->fd != -1) { result = ceph_lseek(handle->data, fsp->fh->fd, offset, whence); @@ -493,7 +494,7 @@ static ssize_t cephwrap_sendfile(struct vfs_handle_struct *handle, int tofd, fil /* * We cannot support sendfile because libceph is in user space. */ - DEBUG(10, ("[CEPH] cephwrap_sendfile\n")); + DBG_DEBUG("[CEPH] cephwrap_sendfile\n"); errno = ENOTSUP; return -1; } @@ -507,7 +508,7 @@ static ssize_t cephwrap_recvfile(struct vfs_handle_struct *handle, /* * We cannot support recvfile because libceph is in user space. */ - DEBUG(10, ("[CEPH] cephwrap_recvfile\n")); + DBG_DEBUG("[CEPH] cephwrap_recvfile\n"); errno=ENOTSUP; return -1; } @@ -517,7 +518,7 @@ static int cephwrap_rename(struct vfs_handle_struct *handle, const struct smb_filename *smb_fname_dst) { int result = -1; - DEBUG(10, ("[CEPH] cephwrap_rename\n")); + DBG_DEBUG("[CEPH] cephwrap_rename\n"); if (smb_fname_src->stream_name || smb_fname_dst->stream_name) { errno = ENOENT; return result; @@ -530,18 +531,160 @@ static int cephwrap_rename(struct vfs_handle_struct *handle, static int cephwrap_fsync(struct vfs_handle_struct *handle, files_struct *fsp) { int result; - DEBUG(10, ("[CEPH] cephwrap_fsync\n")); + DBG_DEBUG("[CEPH] cephwrap_fsync\n"); result = ceph_fsync(handle->data, fsp->fh->fd, false); WRAP_RETURN(result); } +#ifdef HAVE_CEPH_STATX +#define SAMBA_STATX_ATTR_MASK (CEPH_STATX_BASIC_STATS|CEPH_STATX_BTIME) + +static void init_stat_ex_from_ceph_statx(struct stat_ex *dst, const struct ceph_statx *stx) +{ + if ((stx->stx_mask & SAMBA_STATX_ATTR_MASK) != SAMBA_STATX_ATTR_MASK) + DBG_WARNING("%s: stx->stx_mask is incorrect (wanted %x, got %x)", + __func__, SAMBA_STATX_ATTR_MASK, stx->stx_mask); + + dst->st_ex_dev = stx->stx_dev; + dst->st_ex_rdev = stx->stx_rdev; + dst->st_ex_ino = stx->stx_ino; + dst->st_ex_mode = stx->stx_mode; + dst->st_ex_uid = stx->stx_uid; + dst->st_ex_gid = stx->stx_gid; + dst->st_ex_size = stx->stx_size; + dst->st_ex_nlink = stx->stx_nlink; + dst->st_ex_atime = stx->stx_atime; + dst->st_ex_btime = stx->stx_btime; + dst->st_ex_ctime = stx->stx_ctime; + dst->st_ex_mtime = stx->stx_mtime; + dst->st_ex_calculated_birthtime = false; + dst->st_ex_blksize = stx->stx_blksize; + dst->st_ex_blocks = stx->stx_blocks; +} + +static int cephwrap_stat(struct vfs_handle_struct *handle, + struct smb_filename *smb_fname) +{ + int result = -1; + struct ceph_statx stx; + + DBG_DEBUG("[CEPH] stat(%p, %s)\n", handle, smb_fname_str_dbg(smb_fname)); + + if (smb_fname->stream_name) { + errno = ENOENT; + return result; + } + + result = ceph_statx(handle->data, smb_fname->base_name, &stx, + SAMBA_STATX_ATTR_MASK, 0); + DBG_DEBUG("[CEPH] statx(...) = %d\n", result); + if (result < 0) { + WRAP_RETURN(result); + } else { + DBG_DEBUG("[CEPH]\tstx = {dev = %llx, ino = %llu, mode = 0x%x, nlink = %llu, " + "uid = %d, gid = %d, rdev = %llx, size = %llu, blksize = %llu, " + "blocks = %llu, atime = %llu, mtime = %llu, ctime = %llu, btime = %llu}\n", + llu(stx.stx_dev), llu(stx.stx_ino), stx.stx_mode, + llu(stx.stx_nlink), stx.stx_uid, stx.stx_gid, llu(stx.stx_rdev), + llu(stx.stx_size), llu(stx.stx_blksize), + llu(stx.stx_blocks), llu(stx.stx_atime.tv_sec), llu(stx.stx_mtime.tv_sec), + llu(stx.stx_ctime.tv_sec), llu(stx.stx_btime.tv_sec)); + } + init_stat_ex_from_ceph_statx(&smb_fname->st, &stx); + DBG_DEBUG("[CEPH] mode = 0x%x\n", smb_fname->st.st_ex_mode); + return result; +} + +static int cephwrap_fstat(struct vfs_handle_struct *handle, files_struct *fsp, SMB_STRUCT_STAT *sbuf) +{ + int result = -1; + struct ceph_statx stx; + + DBG_DEBUG("[CEPH] fstat(%p, %d)\n", handle, fsp->fh->fd); + result = ceph_fstatx(handle->data, fsp->fh->fd, &stx, + SAMBA_STATX_ATTR_MASK, 0); + DBG_DEBUG("[CEPH] fstat(...) = %d\n", result); + if (result < 0) { + WRAP_RETURN(result); + } else { + DBG_DEBUG("[CEPH]\tstx = {dev = %llx, ino = %llu, mode = 0x%x, nlink = %llu, " + "uid = %d, gid = %d, rdev = %llx, size = %llu, blksize = %llu, " + "blocks = %llu, atime = %llu, mtime = %llu, ctime = %llu, btime = %llu}\n", + llu(stx.stx_dev), llu(stx.stx_ino), stx.stx_mode, + llu(stx.stx_nlink), stx.stx_uid, stx.stx_gid, llu(stx.stx_rdev), + llu(stx.stx_size), llu(stx.stx_blksize), + llu(stx.stx_blocks), llu(stx.stx_atime.tv_sec), llu(stx.stx_mtime.tv_sec), + llu(stx.stx_ctime.tv_sec), llu(stx.stx_btime.tv_sec)); + } + init_stat_ex_from_ceph_statx(sbuf, &stx); + DBG_DEBUG("[CEPH] mode = 0x%x\n", sbuf->st_ex_mode); + return result; +} + +static int cephwrap_lstat(struct vfs_handle_struct *handle, + struct smb_filename *smb_fname) +{ + int result = -1; + struct ceph_statx stx; + + DBG_DEBUG("[CEPH] lstat(%p, %s)\n", handle, smb_fname_str_dbg(smb_fname)); + + if (smb_fname->stream_name) { + errno = ENOENT; + return result; + } + + result = ceph_statx(handle->data, smb_fname->base_name, &stx, + SAMBA_STATX_ATTR_MASK, AT_SYMLINK_NOFOLLOW); + DBG_DEBUG("[CEPH] lstat(...) = %d\n", result); + if (result < 0) { + WRAP_RETURN(result); + } + init_stat_ex_from_ceph_statx(&smb_fname->st, &stx); + return result; +} + +static int cephwrap_ntimes(struct vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + struct smb_file_time *ft) +{ + struct ceph_statx stx = { 0 }; + int result; + int mask = 0; + + if (!null_timespec(ft->atime)) { + stx.stx_atime = ft->atime; + mask |= CEPH_SETATTR_ATIME; + } + if (!null_timespec(ft->mtime)) { + stx.stx_mtime = ft->mtime; + mask |= CEPH_SETATTR_MTIME; + } + if (!null_timespec(ft->create_time)) { + stx.stx_btime = ft->create_time; + mask |= CEPH_SETATTR_BTIME; + } + + if (!mask) { + return 0; + } + + result = ceph_setattrx(handle->data, smb_fname->base_name, &stx, mask, 0); + DBG_DEBUG("[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, + ft->create_time.tv_sec, result); + return result; +} + +#else /* HAVE_CEPH_STATX */ + static int cephwrap_stat(struct vfs_handle_struct *handle, struct smb_filename *smb_fname) { int result = -1; struct stat stbuf; - DEBUG(10, ("[CEPH] stat(%p, %s)\n", handle, smb_fname_str_dbg(smb_fname))); + DBG_DEBUG("[CEPH] stat(%p, %s)\n", handle, smb_fname_str_dbg(smb_fname)); if (smb_fname->stream_name) { errno = ENOENT; @@ -549,21 +692,21 @@ static int cephwrap_stat(struct vfs_handle_struct *handle, } result = ceph_stat(handle->data, smb_fname->base_name, (struct stat *) &stbuf); - DEBUG(10, ("[CEPH] stat(...) = %d\n", result)); + DBG_DEBUG("[CEPH] stat(...) = %d\n", result); if (result < 0) { WRAP_RETURN(result); } else { - DEBUG(10, ("[CEPH]\tstbuf = {dev = %llu, ino = %llu, mode = 0x%x, nlink = %llu, " + DBG_DEBUG("[CEPH]\tstbuf = {dev = %llu, ino = %llu, mode = 0x%x, nlink = %llu, " "uid = %d, gid = %d, rdev = %llu, size = %llu, blksize = %llu, " "blocks = %llu, atime = %llu, mtime = %llu, ctime = %llu}\n", llu(stbuf.st_dev), llu(stbuf.st_ino), stbuf.st_mode, llu(stbuf.st_nlink), stbuf.st_uid, stbuf.st_gid, llu(stbuf.st_rdev), llu(stbuf.st_size), llu(stbuf.st_blksize), - llu(stbuf.st_blocks), llu(stbuf.st_atime), llu(stbuf.st_mtime), llu(stbuf.st_ctime))); + llu(stbuf.st_blocks), llu(stbuf.st_atime), llu(stbuf.st_mtime), llu(stbuf.st_ctime)); } -- Samba Shared Repository