bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH hurd 0/6] Add file record locking support


From: Svante Signell
Subject: [PATCH hurd 0/6] Add file record locking support
Date: Thu, 08 Jan 2015 12:28:05 +0100

Hi,

Attached in subsequent mails is a patch series for file record locking
support, mainly developed by Neal Walfield in 2001. The patch was
published by Marcus Brinkmann and later re-diffed by Michael Banck in
2002. Now modified to use libpthread instead of cthreads and some
additional fixes.

Links:
http://savannah.gnu.org/task/?1022
http://savannah.gnu.org/patch/?332

I've run this patched Hurd on several kvm images since July 2014 without
problems. 

1/6: hurd_new_RPC.patch: add new RPC: file_record_lock
2/6: libdiskfs_file_record_lock.patch: implement
diskfs_S_file_record_lock and modify diskfs_S_* accordingly, initialize
and release lock_status.
3/6: libfshelp_rlock.patch: implement fshelp_rlock_* functions
4/6: libfshelp-tests_rlock.patch: implement file_record_lock tests
5/6: libnetfs_file_record_lock.patch: implement netfs_S_file_record_lock
6/6: libtrivfs_file_record_lock.patch: implement
trivfs_S_file_record_lock

There are two issues left to solve:
1) l_pid of struct flock is not set. According to the manpage (and
posix) the PID of the process blocking the lock should be reported. Can
maybe be solved by a shared memory solution in glibc or as indicated in
task 1022.

2) fork(2) does not create a process without the locks set for the
child. According to the fcntl(2) manpage (and posix) record locks are
not inherited by a child created via fork(2). The fork functionality is
tested in the program libfshelp-tests/fork.c. Proposed solutions are
mentioned in task 1022. 
(This is probably the main cause tdbtorture in tdb does not work well
with the current file record locking patches.)

Maybe also the copyright text should be updated to a more modern version
for new files (and adding copyright year 2015?)

Thanks!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]