diff options
author | Jeremy Allison <jra@samba.org> | 2008-09-10 14:52:34 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2008-09-11 13:16:17 +0200 |
commit | f95b12dc6a2b4d5d1a549b705ae5933cf6d25684 (patch) | |
tree | 9af120c2c25500c8dce94c46ffb4d6fd47d25df1 /source/smbd/trans2.c | |
parent | e48f855fd72dc150d49641a13bb2a72721e006a5 (diff) | |
download | samba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.tar.gz samba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.tar.xz samba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.zip |
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.
(cherry picked from commit 4e06c71a12654d78c9a94fb023e372920bf7618b)
Diffstat (limited to 'source/smbd/trans2.c')
-rw-r--r-- | source/smbd/trans2.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c index 7753fad54f9..13105dce0fc 100644 --- a/source/smbd/trans2.c +++ b/source/smbd/trans2.c @@ -1938,6 +1938,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; @@ -2295,6 +2297,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; @@ -4132,7 +4136,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; } |