Karel Zak [Mon, 14 May 2007 12:31:28 +0000 (14:31 +0200)]
mount: fsprobe: make fsprobe_get_devname functions more generic
The blkid supports NAME=value parsing, but use the library for
this simple task is overkill. (The libblkid requires initialized
blkid cache all time, for all calls.)
This patch makes the fsprobe_get_devname_for_mounting() and
fsprobe_get_devname() generic for all fsprobe implementations.
Stepan Kasal [Tue, 15 May 2007 18:46:04 +0000 (20:46 +0200)]
build-sys: fix the example configure call in README
Adapt the example to pass the variables as arguments to the configure
script, as this is the prefered way. And a few cosmetic changes to the
paragraph.
Stepan Kasal [Tue, 15 May 2007 18:46:01 +0000 (20:46 +0200)]
build-sys: move the optimization flags to AM_CFLAGS
The optimization flags are not preprocessor flags.
Moreover, CPPFLAGS and CFLAGS shall be overridable at make time, the
configure script shall not touch them.
Setting AM_CFLAGS in config/include-Makefile.am seems to be TRW.
Karel Zak [Thu, 3 May 2007 12:16:24 +0000 (14:16 +0200)]
mount: use growable string for options
The parse_opt() routine uses fixed size of string for mount options.
This is useless for future selinux options where is not well defined
size of selinux context name.
The patch also makes code more readable and all option-string
operations share same code.
Karel Zak [Wed, 25 Apr 2007 23:49:28 +0000 (01:49 +0200)]
mount: fix list logic in update_mtab
If mtab does not contain the new entry, then only mc0->prev is updated
to point to absent, but not the old mc0->prev's nxt pointer. Because
we then use the nxt pointers to write the new mtab, absent is not
added to the new mtab.
(Note: fortunately, the mount doesn't use the update_mtab() for new
mounts, but for remount, move and umount only -- kzak)
If mtab is empty, absent->prev should be set to mc0, and not
mc0->prev, as it will be NULL.
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Martin Schlemmer <azarah@gentoo.org> Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Tue, 24 Apr 2007 09:44:19 +0000 (11:44 +0200)]
build-sys: add SUID_CFLAGS
The patch allows to define special CFLAGS for typical suid programs
(like mount, umount, chfn, ...). Some distributions use for example
"-fpic" for suid binaries.
Karel Zak [Thu, 12 Apr 2007 12:35:46 +0000 (14:35 +0200)]
mount: add support for mtab "uhelper" option
The helper is an external /sbin/umount.<suffix> program where the
suffix is a value from the uhelper= option from /etc/mtab.
The uhelper (unprivileged umount helper) is possible to used when
non-root user wants to umount a mountpoint which is not defined in the
/etc/fstab file (e.g devices mounted by HAL).
Karel Zak [Wed, 11 Apr 2007 21:18:08 +0000 (23:18 +0200)]
schedutils: define SCHED_BATCH when compile with old glibc
This is temporary workaround and it will be removed in 2.14 when
minimal number of people will use old systems where is not defined
SCHED_BATCH in (bits/)sched.h.
Valerie Henson [Sat, 9 Dec 2006 03:15:14 +0000 (19:15 -0800)]
mount: relative atime support
Add the "relatime" (relative atime) option support to mount. Relative
atime only updates the atime if the previous atime is older than the
mtime or ctime. Like noatime, but useful for applications like mutt
that need to know when a file has been read since it was last
modified.
Cc: Adrian Bunk <bunk@stusta.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Karel Zak <kzak@redhat.com> Signed-off-by: Valerie Henson <val_henson@linux.intel.com>
Karel Zak [Fri, 30 Mar 2007 11:10:59 +0000 (13:10 +0200)]
mount: fix mtab_lock
* the lock function uses F_SETLK / F_SETLKW as a conditional wait.
It's more reliable and better for performance to close the
MOUNTED_LOCK file in unlock_mtab(), otherwise concurrent process will
be wait by while () { link() } loop instead on fcntl(F_SETLKW).
Thanks to Jeff Moyer <moyer@redhat.com> who found the problem two
year ago.
* when open(MOUNTED_LOCK) failed, we need to try everything again, but
the original code didn't zeroize "we_created_lockfile" and the old
version in particular case left lock_mtab() without locked /etc/mtab.
This is nasty bug.
* the original locking code had bad performance due too long sleep
(1s), between attempts. Now we're more aggressive and we use
5000ms. The result is that more processes is able to lock mtab in
short time slice.
Thanks to Peter Rockai <prockai@redhat.com> who found the problem
and suggest a first version of the code with usleep.
* now we don't count number of attempts anymore, but we count sum of
time which we spend in the mtab_lock(). The number of attempts is
not important (and it also depends on CPU performance, load,
scheduler, ...), the important thing is how long we spend with
locking. Now time limit is 30s.
Karel Zak [Thu, 22 Mar 2007 00:56:54 +0000 (01:56 +0100)]
mount: call /sbin/mount.<type> also when mounting without "-t"
The mount uses /sbin/mount.<type> when the type is *defined* on
command line or in fstab only. It's not a consistent solution, because
we also support fylesystem type autodetection. The patch allows to
mount OCFS2 by label for example.
Karel Zak [Wed, 21 Mar 2007 22:07:25 +0000 (23:07 +0100)]
newgrp: add support for /etc/gshadow
The original newgrp command doesn't expect group pasword in /etc/gshadow
although almost all distributions use this file (and the gpasswd command).
The newgrp from util-linux is deprecated and better is use shadow-utils only.
Unfortunately, shadow-utils are broken too (see RH version where is bugfix).
In this case it's better fix util-linux version at least...
Karel Zak [Wed, 21 Mar 2007 13:12:05 +0000 (14:12 +0100)]
hwclock: add support for audit system
If you compile --with-audit the hwclock tool reports changes in sys/hw clock to
audit system. The real long-term and final solution is probably add hooks for
/dev/rtc to kernel, but it's not implemented yet.
Signed-off-by: Steve Grubb <sgrubb@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
The kernel code, when setting the BIOS clock notes that the clock time
ticks to the next second 0.5 seconds after adjusting it (see
linux/arch/i386/kernel/time.c).
hwclock --systohc sets the CMOS clock at the 1 second boundry and thus
causes the clock to be wrong by 500ms each time it is reset. If the
clock is set every shutdown then the clock will have a reboot-count
related drift as well as the natural drift problems of the clock. Note
that this also mucks up the drift calculations, of course.