Age | Commit message (Collapse) | Author | Files | Lines |
|
metze
(This used to be commit 7d24b98f3ff55049a7c0d430c15e0a060b4aa2d3)
|
|
The trickiest part about this was getting the sharing and locking
rules right, as alternate streams are separate locking spaces from the
main file for the purposes of byte range locking, and separate for
most share violation rules.
I suspect there are still problems with delete on close with alternate
data streams. I'll look at that next.
(This used to be commit b6452c4a2068cf7e837778559da002ae191b508a)
|
|
preparation for adding code to pass the BASE-DENY1 and BASE-DENYDOS
tests, which require a shared filesystem handle for some specific
combinations of two DENY_DOS opens on the same connection.
(This used to be commit 6e4fdf01d19051e3923d7703dbf990fc1722b09a)
|
|
database in the opendb lck, we ensure that the database is not closed
before the lock is gone. That ensures the lock destructor doesn't work
on a closed database.
(This used to be commit 218e01441aa1def3e8e884c8d618a95c9ffdfc1b)
|
|
The previous code didn't handle the case where the file got renamed or
deleted while waiting for the sharing violation delay. To handle this
we need to make the 2nd open a full open call, including the name
resolve call etc. Luckily this simplifies the logic.
I also expanded the RAW-MUX test to include the case where we do
open/open/open/close/close, with the 3rd open async, and that open
gets retried after both the first close and the 2nd close, with the
first retry failing and the 2nd retry working. The tests the "async
reply after a async reply" logic in pvfs_open().
(This used to be commit eded2ad9c91f5ba587ef4f7f5f5a6dceb4b51ff3)
|
|
deferred reply is short-circuited immediately when the file is
closed by another user, allowing it to be opened by the waiting user.
- added a sane set of timeval manipulation routines
- converted all the events code and code that uses it to use struct
timeval instead of time_t, which allows for microsecond resolution
instead of 1 second resolution. This was needed for doing the pvfs
deferred open code, and is why the patch is so big.
(This used to be commit 0d51511d408d91eb5f68a35e980e0875299b1831)
|
|
SA_RIGHT_FILE_EXECUTE, which depends on a flags2 bit
(This used to be commit c36851d230bcf552ed79322f8358060ab164ec09)
|
|
.dll files
(This used to be commit ba1bfd51e1b694cb69afe559f695addaf03b4d81)
|
|
var/locks/smbd.tmp/
and deletes that dir on startup.
(This used to be commit 7e942e7f1bd2c293a0e6648df43a96f8b8a2a295)
|
|
We found a few months ago that TDB_CLEAR_IF_FIRST is extremely
inefficient for large numbers of connections, due to a fundamental
limitation in the way posix byte range locking is implemented. Rather
than the nasty workaround we had for Samba3, we now have a single
"cleanup tmp files" function that runs when smbd starts. That deletes
the tmp tdbs, so TDB_CLEAR_IF_FIRST is not needed at all.
(This used to be commit ffa285bc783c775a2d53a58fb691ca339e6c76ae)
|
|
(This used to be commit cc93813e4a09c538ad485dc2b3cb4c9be34f3d18)
|
|
correctness). pvfs now passes the BASE-RENAME test.
(This used to be commit 4cf3f65a5c19fdad62a0bdef225b2d9002cf8c8b)
|
|
now pass BASE-UNLINK.
(This used to be commit f23a2f8538bda8f6790e86c93ee22436388b2975)
|
|
(This used to be commit f8041feaebc9170763ce04d2dd90cfc1c7889c21)
|
|
share_access support). This is enough for us to pass the BASE-DENY2
test, but is a long way from fully correct share modes.
(This used to be commit b5a6dd3cbf28a3a3b3a3656042ac8f50fca29e1c)
|
|
pvfs_open, and handle the various race conditions that are inherent in
cifs on unix, so we do the best we can when the race happens.
the ntcreatex code is really starting to take shape now
(This used to be commit 395c3815b468ae55de9a1135e478711f0e7d8cfc)
|
|
(This used to be commit f9dfd5ff1fcfd21fee9b08993b5fe6a6fae7f9d5)
|
|
anything yet, but will soon be the core of the shares modes code.
(This used to be commit ad1edabf95c6c331aac4f0caa7d31193e26bc176)
|