From b77f241b28bcf29a88e28a49623a5e99a356bb34 Mon Sep 17 00:00:00 2001 From: Christian Ambach Date: Wed, 14 Apr 2010 10:05:56 +0200 Subject: fix snapshot content display with hide unreadable With the hide unreadable option set, snapshots are be displayed as empty with shadow_copy2 and a NFSv4 ACL module. To prevent multiple conversions of the paths when the acl call does a VFS_STAT (as the nfs4acl code does), a check was added to convert_shadow2_name() so it will not touch paths any more that look like they have already been converted. Signed-off-by: Christian Ambach --- source3/modules/vfs_shadow_copy2.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source3/modules/vfs_shadow_copy2.c') diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c index 3cf681fde8..34792de97b 100644 --- a/source3/modules/vfs_shadow_copy2.c +++ b/source3/modules/vfs_shadow_copy2.c @@ -411,7 +411,7 @@ static char *convert_shadow2_name(vfs_handle_struct *handle, const char *fname, TALLOC_CTX *tmp_ctx = talloc_new(handle->data); const char *snapdir, *relpath, *baseoffset, *basedir; size_t baselen; - char *ret; + char *ret, *prefix; struct tm timestamp; time_t timestamp_t; @@ -435,6 +435,13 @@ static char *convert_shadow2_name(vfs_handle_struct *handle, const char *fname, return NULL; } + prefix = talloc_asprintf(tmp_ctx, "%s/@GMT-", snapdir); + if (strncmp(fname, prefix, strlen(prefix)) == 0) { + /* this looks like as we have already normalized it, leave it untouched*/ + talloc_free(tmp_ctx); + return talloc_strdup(handle->data, fname); + } + if (strncmp(fname, "@GMT-", 5) != 0) { fname = shadow_copy2_normalise_path(tmp_ctx, fname, gmt_path); if (fname == NULL) { -- cgit