Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2a4dc49 authored by Thomas Bächler's avatar Thomas Bächler Committed by Greg Kroah-Hartman
Browse files

fs: Don't return 0 from get_anon_bdev

Commit 9e30cc95 removed an internal mount. This
has the side-effect that rootfs now has FSID 0. Many
userspace utilities assume that st_dev in struct stat
is never 0, so this change breaks a number of tools in
early userspace.

Since we don't know how many userspace programs are affected,
make sure that FSID is at least 1.

References: http://article.gmane.org/gmane.linux.kernel/1666905
References: http://permalink.gmane.org/gmane.linux.utilities.util-linux-ng/8557


Cc: 3.14 <stable@vger.kernel.org>
Signed-off-by: default avatarThomas Bächler <thomas@archlinux.org>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
Tested-by: default avatarAlexandre Demers <alexandre.f.demers@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c9eaa447
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -800,7 +800,10 @@ void emergency_remount(void)

static DEFINE_IDA(unnamed_dev_ida);
static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */
static int unnamed_dev_start = 0; /* don't bother trying below it */
/* Many userspace utilities consider an FSID of 0 invalid.
 * Always return at least 1 from get_anon_bdev.
 */
static int unnamed_dev_start = 1;

int get_anon_bdev(dev_t *p)
{