Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This patch adds 3 new VFS OPs for Windows byte range locking: BRL_LOCK_WINDOWS,
BRL_UNLOCK_WINDOWS and BRL_CANCEL_WINDOWS. Specifically:
* I renamed brl_lock_windows, brl_unlock_windows and brl_lock_cancel to
*_default as the default implementations of the VFS ops.
* The blocking_lock_record (BLR) is now passed into the brl_lock_windows and
brl_cancel_windows paths. The Onefs implementation uses it - future
implementations may find it useful too.
* Created brl_lock_cancel to do what brl_lock/brl_unlock do: set up a
lock_struct and call either the Posix or Windows lock function. These happen
to be the same for the default implementation.
* Added helper functions: increment_current_lock_count() and
decrement_current_lock_count().
* Minor spelling correction in brl_timeout_fn: brl -> blr.
* Changed blocking_lock_cancel() to return the BLR that it has cancelled. This
allows us to assert its the lock that we wanted to cancel. If this assert ever
fires, this path will need to take in the BLR to cancel, rather than choosing
on its own.
* Adds a small helper function: find_blocking_lock_record_by_id(). Used by the
OneFS implementation, but could be useful for others.
|
|
|
|
This replaces release_level2_oplocks_on_change with
contend_level2_oplock_begin/end in order to contend level2 oplocks
throughout an operation rather than just at the begining. This is
necessary for some kernel oplock implementations, and also lays the
groundwork for better correctness in Samba's standard level2 oplock
handling. The next step for non-kernel oplocks is to add additional
state to the share mode lock struct that prevents any new opens from
granting oplocks while a contending operation is in progress.
All operations that contend level 2 oplocks are now correctly spanned
except for aio and synchronous writes. The two write paths both have
non-trivial error paths that need extra care to get right.
RAW-OPLOCK and the rest of 'make test' are still passing with this
change.
|
|
Jeremy.
|
|
Jeremy.
|
|
torture test
This third patch cleans up by removing all of the code that is made
obsolete by the first patch. It should cause no functional changes.
|
|
|
|
Jeremy.
(This used to be commit 079c75ef3c169c7a5d81bcaa0b70b6e0df2c464d)
|
|
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)
|
|
Patch successfully tested by Christoph Kaegi <kaph@zhaw.ch>, thanks.
(cherry picked from commit 9f8df16f476c49da85000b7365c8a6e33b8b71fc)
(This used to be commit 82ed19ff64fc815a8ca9fbd7d3331671ecf5d12b)
|
|
Jeremy.
(This used to be commit 7eeed8bb41059ec2bddedb6a71deddeec7f33af2)
|
|
being (correctly) used in the can_read/can_write checks for hide unreadable/unwritable
and this is more properly done using the functions in smbd/file_access.c.
Preparing to do NT access checks on all file access.
Jeremy.
(This used to be commit 6bfb06ad95963ae2acb67c4694a98282d3b29faa)
|
|
Wrap lines and remove trailing space.
Michael
(This used to be commit 74ed53a115b2063d4d5c8572af8f1302bc658882)
|
|
The errno is handed up through the VFS layer to the callers.
Michael
(This used to be commit d928e6648d61cf2d3c1b77db440efb835b729a84)
|
|
Now that it is inside the vfs layer, this function should
not alter the fsp (i.e. set fsp->fh->fd = -1) anymore.
That belongs above the vfs layer.
Michael
(This used to be commit df264bf3e00d7d77afcf55e54d2669b9ffa9af4a)
|
|
This hides the pending close fds from the outside. Call order
of SMB_VFS_CLOSE is reversed. Originally, it was:
fd_close -> fd_close_posix -> SMB_VFS_CLOSE -> close
And now it is:
fd_close -> SMB_VFS_CLOSE -> fd_close_posix -> close
This is in preparation of removing the fd parameter
from the SMB_VFS_CLOSE function. But it is also the right
place for the pending close calls anyways.
Michael
(This used to be commit 3cf56b124a2886c6260455bba4bf77d08e9a4f77)
|
|
seem to be valid (vl - feel free to confirm).
Jeremy.
(This used to be commit 43b0254d93540eeaddaa32d76dd9271f4dc2ebff)
|
|
get_file_infos()
This means we need to fetch the record only once.
metze
(This used to be commit 4130b873291d39e363184fe4e38dc1f24ebe5056)
|
|
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)
|
|
(This used to be commit 64b1625f8e3bca43504871747bef6631e1b18f44)
|
|
(This used to be commit 4a6dadc5178f4861e9c032321939db3b639734b5)
|
|
(http://samba.org/~tridge/3_0-ctdb)
Signed-off-by: Alexander Bokovoy <ab@samba.org>(This used to be commit 0c8e23afbbb2d081fc23908bafcad04650bfacea)
|
|
We now refer directly to the file name in the tdb data, so don't delete it.
(This used to be commit 71de4946cf00cf8b7bb2f2d92832166bee12e84a)
|
|
(This used to be commit 616bc34744487450edd47e212a29c0f57eabb722)
|
|
(This used to be commit 444e35e7df1f13fc285183da8fb41b30ad99a3fa)
|
|
(This used to be commit 65dd869bea351010c67f02046ae4134bdada1a4c)
|
|
Michael
(This used to be commit ee5a20becdcdb20d7012732b324c6938fab44f67)
|
|
(This used to be commit 66be770993acf4e1673e9615bcddb21768c33e62)
|
|
Michael
(This used to be commit 4f3ab2c406072e0b43581057e7e785e8ad454cfa)
|
|
(This used to be commit a98693bfa7bfe72ffa164d21b3e9636e268708aa)
|
|
Michael
(This used to be commit f3365b74ac016eaee1e82eef769dd618af5df201)
|
|
(This used to be commit 841f4ccbfb5f79ac4f447342e9dd6ef73cacbc65)
|
|
locking.c:open_read_only was unused
don't export the silly boolean flag locking_init(bool read_only)
(This used to be commit 2f3c865707010bc7c463a02782dbee3dc2479da1)
|
|
(This used to be commit 1f317f471af72f8bbc6c9fdd3e79a27c59e6fb6e)
|
|
(This used to be commit 8ee502e1e59960fd8db037f0adf1171b2a18cec5)
|
|
(This used to be commit 144014096a41de293ce7ec15f82681a469dd3aa1)
|
|
(This used to be commit b82120f9b7f5aad83d8b4ece0261e9693eedca0c)
|
|
Jeremy.
(This used to be commit a1725f4ff7ed375808c78ac661b539557748d0a5)
|
|
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
|
|
This removes file_id_string_static and file_id_string_static2
(This used to be commit 638c848c9afe374feb30e34c494f89b2a6c64f7b)
|
|
Patch from Ofir Azoulay <Ofir.Azoulay@expand.com> -- thanks
(This used to be commit 888e657d758173c0eb4b68059d6fb5ae45b2b2ed)
|
|
This has been superseded by the "tdb_hashsize:<tdbname>" parameter
(This used to be commit df40d336afd256f05a0ec3724cc2096fb7114d81)
|
|
by hand
metze
(This used to be commit a7449e4ab390b3c1d9d5a0bbc466f71de17918e0)
|
|
(This used to be commit ff1996ce4b0edfee90758c85ea0ac653877a1b9f)
|
|
fixed a bug with dead share mode entries
jra: please tell me if it's ok to merge this to 3_2_0.
metze
(This used to be commit 044ac6afa7a36b352f4cb203879af082d4726417)
|
|
POSIX locking. We can't do lock counts with POSIX,
so stop counting if we get a POSIX lock request.
Jeremy.
(This used to be commit a48e4a29e6774e5e72b9b361a17207b053474521)
|
|
(This used to be commit b2adb28808fe25d420bc12834ca8bc70779bb653)
|
|
(This used to be commit 9b8f2d8bd144700306819480bcb260d2c20969ae)
|
|
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
|