Hello community, here is the log from the commit of package util-linux checked in at Fri Nov 28 16:08:22 CET 2008. -------- --- util-linux/util-linux.changes 2008-11-24 15:51:03.000000000 +0100 +++ util-linux/util-linux.changes 2008-11-27 11:41:41.217184000 +0100 @@ -1,0 +2,6 @@ +Thu Nov 27 01:27:19 CET 2008 - dmueller@suse.de + +- mount: fix hang on trying to find a free loop device + if one of them has a stale nfs handle mounted (bnc#449646) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- fix-hang-on-stale-nfs.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ util-linux.spec ++++++ --- /var/tmp/diff_new_pack.Y32724/_old 2008-11-28 16:07:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Y32724/_new 2008-11-28 16:07:49.000000000 +0100 @@ -30,7 +30,7 @@ Group: System/Base AutoReqProv: on Version: 2.14.1 -Release: 8 +Release: 9 Requires: %name-lang = %{version} Summary: A collection of basic system utilities Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/%name-ng-%version.tar.bz2 @@ -71,6 +71,7 @@ Patch4: util-linux-2.13-hwclock_rtc_wait_busy_tempfix.patch # Patch5: util-linux-2.13.1-fdisk_cfdisk_yesno.patch +Patch6: fix-hang-on-stale-nfs.diff Patch7: util-linux-2.14-mount_retry_on_nomedium.patch Patch8: util-linux-2.14.1-lscpu.patch Patch9: util-linux-2.14.1-lscpu_sysroot_option.patch @@ -126,6 +127,7 @@ %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -609,6 +611,9 @@ #%endif %changelog +* Thu Nov 27 2008 dmueller@suse.de +- mount: fix hang on trying to find a free loop device + if one of them has a stale nfs handle mounted (bnc#449646) * Mon Nov 24 2008 mkoenig@suse.de - mount: fix locking patch to not break -n [bnc#447937] * Thu Nov 20 2008 mkoenig@suse.de ++++++ fix-hang-on-stale-nfs.diff ++++++ --- mount/lomount.c +++ mount/lomount.c @@ -109,7 +109,14 @@ static int is_loop_used(int fd) { struct loop_info li; - return ioctl (fd, LOOP_GET_STATUS, &li) == 0; + int ret; + ret = ioctl (fd, LOOP_GET_STATUS, &li); + if (ret == 0) + return 1; + if (ret < 0 && (errno == ENXIO)) + return 0; + /* all other errors, e.g. ENOENT or ESTALE are an error. */ + return -1; } int ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org