Age | Commit message (Collapse) | Author | Files | Lines |
|
Ok, here's the fix for the write times breakage
with the new tests in S4 smbtorture.
The key is keeping in the share mode struct
the "old_file_time" as the real write time,
set by all the write and allocation calls,
and the "changed_write_time" as the "sticky"
write time - set by the SET_FILE_TIME calls.
We can set them independently (although I
kept the optimization of not setting the
"old_file_time" is a "changed_write_time"
was already set, as we'll never see it.
This allows us to update the write time
immediately on the SMBwrite truncate case,
SET_END_OF_FILE and SET_ALLOCATION_SIZE calls,
whilst still have the 2 second delay on the
"normal" SMBwrite, SMBwriteX calls.
I think in a subsequent patch I'd like to
change the name of these from "old_file_time"
to "write_time" and "changed_write_time" to
"sticky_write_time" to make this clearer.
I think I also fixed a bug in Metze's original
code in that once a write timestamp had been
set from a "normal" SMBwriteX call the fsp->update_write_time_triggered
variable was set and then never reset - thus
meaning the write timestamp would never get
updated again on subsequent SMBwriteX's.
The new code checks the update_write_time_event
event instead, and doesn't update is there's
an event already scheduled.
Metze especially, please check this over for
your understanding.
Jeremy.
(This used to be commit 6f20585419046c4aca1f7d6c863cf79eb6ae53b0)
|
|
(This used to be commit 56ecec50130aa948a431427285aed4b28a5647e8)
|
|
support it (*BSD and MacOSX).
Should have done this ages ago, sorry.
Jeremy.
(This used to be commit 4c3a9558906f213948c3bdc081be73f8fed148cb)
|
|
cannot do sendfile for this file"
(This used to be commit 737f664604b28f230be63bfc2f3d516fd9eb1c63)
|
|
xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by missing
reply packet to SMB printclose packet.
Jeremy
(This used to be commit ecf2b906f476e4a764d0e53eed84b9b75a2062c0)
|
|
one of our virtualised functions, such as db_open(), but error is only
set when a system call fails, and it is not uncommon for us to fail a
function internally without ever making a system call. That led to us
passing back success when a function had in fact failed.
I found two places where we relied on map_nt_error_from_unix()
returning success when errno==0, but lots and lots of places where we
relied on the reverse, so I fixed those two places.
map_nt_error_from_unix() will now always return an error, returning
NT_STATUS_UNSUCCESSFUL if errno is 0
(cherry picked from commit 69d40ca4c1af925d4b0e59ddc69ef8c26e6501d1)
(This used to be commit 834684a524a24bb4eb46b4af583d39947dc87d95)
|
|
(This used to be commit 1970eed1b79a5d9dc45eb96098d653ad62a20871)
|
|
(This used to be commit c63cb78b4c8a283c0eebe37ff2f60ddbfbfaac4a)
|
|
case files. Reported by Daniel Johnson <Progman2000@usa.net>.
The smb_set_file_time() call to set the filetimes is failing
because it's using the unmodified name passed in by the
client, not the modified name (matching case on the
disk) that comes out from create_file().
Jeremy.
(This used to be commit 1706a33e78347d14a8b09fd21b87d57bad543bcd)
|
|
(This used to be commit 510f45d01a19ce1c226755ac42a328241098b2e0)
|
|
This involved replacing the CHECK_NTQUOTA_HANDLE_OK macro by a function.
(This used to be commit 5595cdf837edb82db69a3e57bcf3108be7feeeb8)
|
|
(This used to be commit e895e44cc7d675d128430fb53c138e5e8736e59f)
|
|
fsp_belongs_conn only used the vuid struct member anyway, and this is available
in the smb_request structure as well.
(This used to be commit 64e9372ab997739d46669c0cc4a4c6edb11d5e64)
|
|
check_fsp only used the vuid struct member anyway, and this is available in the
smb_request structure as well.
(This used to be commit 8d364c4c3311b406847158fc37e9208d298cf8ba)
|
|
How ever could this compile ?
Guenther
(This used to be commit 02f5f35e5ed3b061cfd020d0b13014c72fced5f4)
|
|
metze
(This used to be commit 404a865a34c3a7c67131b3f99e92c11b2abe3e39)
|
|
We now never call file_ntimes() directly, every update
is done via smb_set_file_time().
This let samba3 pass the BASE-DELAYWRITE test.
The write time is only updated 2 seconds after the
first write() on any open handle to the current time
(not the time of the first write).
Each handle which had write requests updates the write
time to the current time on close().
If the write time is set explicit via setfileinfo or setpathinfo
the write time is visible directly and a following close
on the same handle doesn't update the write time.
metze
(This used to be commit 2eab212ea2e1bfd8fa716c2c89b2c042f7ba12ea)
|
|
This is needed to implement the strange write time update
logic later. We need to store 2 time timestamps to
distinguish between the time the file system had before
the first client opened the file and a forced timestamp update.
metze
(This used to be commit 6aaa2ce0eeb46f6735ec984a2e7aadde7a7f456d)
|
|
Jeremy.
(This used to be commit 251df53811e4272b629575a4b50c29a99715ccf9)
|
|
as sendfile isn't implemented in the streams vfs modules yet.
Jeremy.
(This used to be commit eef53e9603d4f3d892ffe00b061def5d717ca481)
|
|
(This used to be commit 99d980125054cbfef8ec85a31e83aa18a6e0bce3)
|
|
connection paths are equal, not just the conn structs themselves.
Jeremy.
(This used to be commit 632f3fe66fbcbe3cc25d070c3885177264f5ad65)
|
|
BATCH20 and RAW-RENAME.
Jeremy.
(This used to be commit 9065792d4bc42522f12f9732de3c0ad82c72a2d3)
|
|
create_file calls unix_convert internally, so modifies fname. So we can't use
"fname" after create_file has returned. Use fsp->fsp_name instead.
Found during a lengthy debugging session with Karolin testing the xattr_tdb
module...
(This used to be commit 183fe570469963923864b732817a87f8660341ed)
|
|
Karolin
(This used to be commit 2bec0a1fb7857e6fb8ec15e5f597b2d4125f105b)
|
|
This doesn't matter for most applications, but for offline files it matters as it allows you to set
files offline from windows clients even with HSM systems that refuse to offline newly created files.
Merge from Tridge's v3-0-ctdb tree.
(This used to be commit 7da6c675440b0253ab37ee6097f769a2e45c7b7b)
|
|
(This used to be commit af40b71023f8c4a2133d996ea698c72b97624043)
|
|
(This used to be commit 9e2947039ef70cab8bbd6027182d9c721eac3194)
|
|
(This used to be commit 5750c3a51b4ddac635a98195d1621b24f91bad3f)
|
|
The logic was wrong: A "SMB_VFS_AIO_FORCE()==False" disabled async I/O, whereas
a "SMB_VFS_AIO_FORCE()==True" should enforce it regardless of other settings.
Alexander, please check!
(This used to be commit 46882ad9927c95caadeb7fb03c1d7491bbe1fb22)
|
|
(This used to be commit 4a6dadc5178f4861e9c032321939db3b639734b5)
|
|
This is a hot code path, and if it has a :, the name will be split later on
anyway.
(This used to be commit 9f7f6b812d89decea1456ccdc37978e645d11a63)
|
|
This is the core of the streams support. The main change is that in
files_struct there is now a base_fsp pointer that holds the main file open
while a stream is open. This is necessary to get the rather strange delete
semantics right: You can't delete the main file while a stream is open without
FILE_SHARE_DELETE, and while a stream is open a successful unlink of the main
file leads to DELETE_PENDING for all further access on the main file or any
stream.
(This used to be commit 6022873cc155bdbbd3fb620689715f07a24d6ed1)
|
|
operations to VFS
Offline files support and remote storage are for allowing communication with
backup and archiving tools that mark files moved to a tape library as offline.
We translate this info into corresponding CIFS offline file attribute and
mark an exported volume as remote storage.
Async I/O force is to allow selective redirection of I/O operations to asynchronous
processing in case it is viable at VFS module discretion. It is needed for
proper handling of offline files as performing regular I/O on offline file will
block smbd.
Signed-off-by: Alexander Bokovoy <ab@samba.org>(This used to be commit 875208724e39564fe81385dfe36e6c963e79e101)
|
|
This cuts some mallocs on NtCreate&X
(This used to be commit 8e64107b7846d8f9cce71aabc95b28b7488d01ce)
|
|
Michael
(This used to be commit a52cfb7d777157c93c9dc26c67f457be592dd537)
|
|
(This used to be commit 65dd869bea351010c67f02046ae4134bdada1a4c)
|
|
Jeremy.
(This used to be commit acfb233acc7324b8d431d5cb777a1933d173b3dc)
|
|
Michael
(This used to be commit 0b86c420be94d295f6917a220b5d699f65b46711)
|
|
Michael
(This used to be commit df929796f2698698d2875227bda8500589cca2df)
|
|
an extra parameter. This cleans up quite a few places
we were passing it around without needing it.
Jeremy.
(This used to be commit 8f36def18e9f980e8db522e1de41e80cfd5f466e)
|
|
with Volker. Mostly making sure we have data on the incoming
packet type, not stored in the smb header.
Jeremy.
(This used to be commit c4e5a505043965eec77b5bb9bc60957e8f3b97c8)
|
|
(This used to be commit 1b1cea9ef04a85a2fdd3c8574f7c4db559b7d9b6)
|
|
(This used to be commit fa09b9ab26657af9bd6dcf3fcc7311d5983a591d)
|
|
(This used to be commit 209c696ab8490564ec9e30f6f07b9c72af3ed2e1)
|
|
negotiation works.
Jeremy.
(This used to be commit d78045601af787731f0737b8627450018902b104)
|
|
(This used to be commit 5ab82d4f574f2a2e2761e9e414c66a70aeffb05d)
|
|
(128k). Add debug error messages so we can see why
writeX large is denied. Ensure we don't allow recvfile
writes on IPC$.
Jeremy.
(This used to be commit 6bf053a6a17749a3bc73c8cc5fd490aa5f93b763)
|
|
Each cli struct has it's own local copy of this variable,
so use that in client code. In the smbd server, add one
static to smbd/proccess.c and use that inside smbd. Fix
a bunch of places where smb_rw_error could be set by
calling read_data() in places where we weren't reading
from the SMB client socket (ie. winbindd).
Jeremy.
(This used to be commit 255c2adf7b6ef30932b5bb9f142ccef4a5d3d0db)
|
|
the incoming buffer in the non-signed case. Speeds
up writes by over 10% or so. Complete the server
recvfile implementation.
Jeremy.
(This used to be commit 81ca5853b2475f123faab3b550f0a7b24ae3c208)
|