From cb40b1ae83cf689e95e03f2d2d3fccc666dc4472 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 10 Sep 2008 14:54:25 -0700 Subject: When requesting UNIX info levels on findfirst/findnext, don't play games with write time, just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary. Jeremy. (This used to be commit b81a4dd003957a611ea190979d828b75d07a1f80) --- source3/smbd/trans2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 3c1753354b..2e2da5cc71 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -1945,6 +1945,8 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n", break; case SMB_FIND_FILE_UNIX: case SMB_FIND_FILE_UNIX_INFO2: + /* Always use filesystem for UNIX mtime query. */ + ask_sharemode = false; if (!lp_unix_extensions()) { reply_nterror(req, NT_STATUS_INVALID_LEVEL); return; @@ -2302,6 +2304,8 @@ resume_key = %d resume name = %s continue=%d level = %d\n", break; case SMB_FIND_FILE_UNIX: case SMB_FIND_FILE_UNIX_INFO2: + /* Always use filesystem for UNIX mtime query. */ + ask_sharemode = false; if (!lp_unix_extensions()) { reply_nterror(req, NT_STATUS_INVALID_LEVEL); return; @@ -4148,7 +4152,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd } } - if (!null_timespec(write_time_ts)) { + if (!null_timespec(write_time_ts) && !INFO_LEVEL_IS_UNIX(info_level)) { mtime_ts = write_time_ts; } -- cgit