summaryrefslogtreecommitdiff
path: root/source3/locking/locking.c
AgeCommit message (Collapse)AuthorFilesLines
2009-03-13s3: Add strict lock/unlock calls to the vfs layer to replace is_lockedDave Richards1-35/+55
2009-03-05Last part of fix for #6154 - zfs does not honor admin users.Jeremy Allison1-4/+15
Jeremy.
2009-02-19s3: Add extid to the dev/inode pairTim Prouty1-3/+3
This extends the file_id struct to add an additional generic uint64_t field: extid. For backwards compatibility with dev/inodes stored in xattr_tdbs and acl_tdbs, the ext id is ignored for these databases. This patch should cause no functional change on systems that don't use SMB_VFS_FILE_ID_CREATE to set the extid. Existing code that uses the smb_share_mode library will need to be updated to be compatibile with the new extid.
2009-02-13s3: Fix uninitialized variable warning (and bug).Zack Kirsch1-2/+0
2009-02-13Add VFS ops for Windows BRL: Lock, Unlock and Cancel:Zack Kirsch1-33/+48
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.
2008-12-17Fix bug #5979 - Level 2 oplocks being granted improperly,Jeremy Allison1-1/+10
Jeremy.
2008-12-09s3: [3/3]: Fix a delete on close divergence from windows and the associated ↵Tim Prouty1-45/+1
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.
2008-10-14Use {u,}int64_t instead of SMB_BIG_{U,}INT.Jelmer Vernooij1-10/+10
2008-09-05Fix debug message to show correct function name.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 079c75ef3c169c7a5d81bcaa0b70b6e0df2c464d)
2008-09-05Write times code update.Jeremy Allison1-5/+28
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)
2008-07-09Fix alignment problems on sparc, bug 5512Volker Lendecke1-19/+20
Patch successfully tested by Christoph Kaegi <kaph@zhaw.ch>, thanks. (cherry picked from commit 9f8df16f476c49da85000b7365c8a6e33b8b71fc) (This used to be commit 82ed19ff64fc815a8ca9fbd7d3331671ecf5d12b)
2008-05-27Allow server manager to close open files selected by id.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 7eeed8bb41059ec2bddedb6a71deddeec7f33af2)
2008-05-02Remove the "stat_open()" function, flag, and all associated code. It was onlyJeremy Allison1-4/+0
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)
2008-04-07locking: combine get_delete_on_close_flag() and get_write_time() into ↵Stefan Metzmacher1-19/+22
get_file_infos() This means we need to fetch the record only once. metze (This used to be commit 4130b873291d39e363184fe4e38dc1f24ebe5056)
2008-04-07locking: store the write time in the locking.tdbStefan Metzmacher1-14/+82
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)
2008-03-17Merge leftovers of 0e1a86bc845 in 3-0-ctdbVolker Lendecke1-4/+3
(This used to be commit 64b1625f8e3bca43504871747bef6631e1b18f44)
2008-01-12Don't early delete the share mode tdb dataVolker Lendecke1-2/+0
We now refer directly to the file name in the tdb data, so don't delete it. (This used to be commit 71de4946cf00cf8b7bb2f2d92832166bee12e84a)
2008-01-12Trivial simplificationVolker Lendecke1-5/+1
(This used to be commit 616bc34744487450edd47e212a29c0f57eabb722)
2008-01-10Some more talloc_tos()Volker Lendecke1-7/+7
(This used to be commit 444e35e7df1f13fc285183da8fb41b30ad99a3fa)
2008-01-10use talloc_tos in a few more placesVolker Lendecke1-2/+2
(This used to be commit 65dd869bea351010c67f02046ae4134bdada1a4c)
2008-01-07Do not talloc_strdup filename and servicepathVolker Lendecke1-16/+8
(This used to be commit 66be770993acf4e1673e9615bcddb21768c33e62)
2008-01-04allocate share_mode_str only when neededVolker Lendecke1-1/+4
(This used to be commit a98693bfa7bfe72ffa164d21b3e9636e268708aa)
2007-12-10Tiny simplificationsVolker Lendecke1-10/+14
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)
2007-12-10Remove a staticVolker Lendecke1-11/+9
(This used to be commit 1f317f471af72f8bbc6c9fdd3e79a27c59e6fb6e)
2007-11-18Add a commentVolker Lendecke1-1/+7
(This used to be commit 144014096a41de293ce7ec15f82681a469dd3aa1)
2007-11-18Fix a valgrind errorVolker Lendecke1-3/+4
(This used to be commit b82120f9b7f5aad83d8b4ece0261e9693eedca0c)
2007-11-15Add MAX_DNS_NAME_LENGTH, remove more pstrings.Jeremy Allison1-9/+9
Jeremy. (This used to be commit a1725f4ff7ed375808c78ac661b539557748d0a5)
2007-10-18RIP BOOL. Convert BOOL -> bool. I found a few interestingJeremy Allison1-26/+26
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)
2007-10-10r25055: Add file_id_string_tosVolker Lendecke1-2/+2
This removes file_id_string_static and file_id_string_static2 (This used to be commit 638c848c9afe374feb30e34c494f89b2a6c64f7b)
2007-10-10r24266: Remove the "open files database hash size" parameterVolker Lendecke1-2/+1
This has been superseded by the "tdb_hashsize:<tdbname>" parameter (This used to be commit df40d336afd256f05a0ec3724cc2096fb7114d81)
2007-10-10r24117: use locking_key() instead of forming the TDB_DATA keyStefan Metzmacher1-4/+1
by hand metze (This used to be commit a7449e4ab390b3c1d9d5a0bbc466f71de17918e0)
2007-10-10r23956: merge from 3_2-ctdb-tridge:Stefan Metzmacher1-0/+8
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)
2007-10-10r23908: Fix bug with interaction of optimization withJeremy Allison1-8/+24
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)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r23510: Tidy calls to smb_panic by removing trailing newlines. Print theJames Peach1-12/+12
failed expression in SMB_ASSERT. (This used to be commit 171dc060e2a576d724eed1ca65636bdafffd7713)
2007-10-10r23486: Ok, this time with a hopefully successful make test in the right place:Volker Lendecke1-4/+0
Remove two local variables (This used to be commit 575e594e936c3cb197945063309f0b424dcdefc8)
2007-10-10r23222: share_mode_forall() is only for counting and status display stuff, soVolker Lendecke1-1/+1
traverse_read is enough here (This used to be commit 40991badef046233326815e50097aa7f493790e8)
2007-10-10r23183: Check in a change made by Tridge:Volker Lendecke1-51/+35
This replaces the internal explicit dev/ino file id representation by a "struct file_id". This is necessary as cluster file systems and NFS don't necessarily assign the same device number to the shared file system. With this structure in place we can now easily add different schemes to map a file to a unique 64-bit device node. Jeremy, you might note that I did not change the external interface of smb_share_modes.c. Volker (This used to be commit 9b10dbbd5de8813fc15ebbb6be9b18010ffe8139)
2007-10-10r23164: Minor cosmetic checkinVolker Lendecke1-2/+2
(This used to be commit 8de1ac9fadb1b0dcac28eef32f7826e9e3a7eca4)
2007-10-10r23163: Convert locking.tdb to dbwrapVolker Lendecke1-91/+109
(This used to be commit afe90224bf151acf6c7be8974408f79cfd459dbf)
2007-10-10r23162: Make use of messaging_send_bufVolker Lendecke1-4/+2
(This used to be commit 3f8186fe85a897b104cd825a005333259d6d008b)
2007-10-10r23100: Implement the delete on close semantics I've just tested forJeremy Allison1-1/+45
in Samba4 smbtorture. Fix rename on an open file handle. Needed for 3.0.25a. Jeremy. (This used to be commit a301467d5f645dada27093ddfd74890b88bb4ce8)
2007-10-10r23014: For all branches, ensure that if we're blocked on a POSIXJeremy Allison1-2/+4
lock we know nothing about that we retry the lock every 10 seconds instead of waiting for the standard select timeout. This is how we used to (and are supposed to) work. Jeremy. (This used to be commit fa18fc25a50cf13c687ae88e7e5e2dda1120e017)
2007-10-10r22846: Chunk one to replace message_send_pid with messaging_send: Deep insideVolker Lendecke1-9/+17
locking/locking.c we have to send retry messages to timed lock holders. The majority of this patch passes a "struct messaging_context" down there. No functional change, survives make test. (This used to be commit bbb508414683eeddd2ee0d2d36fe620118180bbb)
2007-10-10r22542: Move over to using the _strict varients of the tallocJeremy Allison1-1/+1
calls. No functional changes. Looks bigger than it is :-). Jeremy. (This used to be commit f6fa3080fee1b20df9f1968500840a88cf0ee592)
2007-10-10r22009: change TDB_DATA from char * to unsigned char *Stefan Metzmacher1-10/+10
and fix all compiler warnings in the users metze (This used to be commit 3a28443079c141a6ce8182c65b56ca210e34f37f)
2007-10-10r21726: Fix stupid cut-n-paste typo. Thanks to volker forJeremy Allison1-1/+1
being on the ball..... :-). Jeremy. (This used to be commit 84ed7bcbe6dc14b18a7e913b153c82da1856a835)
2007-10-10r21724: Optimization pointed out by Volker. If we don'tJeremy Allison1-0/+20
have any outstanding locks or blocking locks then we don't need to read the lock db. on close. Jeremy. (This used to be commit 1b063496f93f78347a6e67549bde54c845499a7d)
2007-10-10r21723: Make use of the per-hashchain "freelists"Volker Lendecke1-0/+3
(This used to be commit f3421ae4cfa263c0e7a8e934b40342ee9885d239)