fs: Don't return 0 from get_anon_bdev
Commit 9e30cc9595
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: Thomas Bächler <thomas@archlinux.org>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c9eaa447e7
commit
a2a4dc494a
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue