btrfs-progs: mkfs: increase buffer size in is_ssd

In current versions of util-linux the buffer passed to blkid_devno_to_wholedisk
has to be sufficiently large to not only hold the device name but the complete
target of the /sys/dev/block/<maj:min> symlink. This was changed only recently
in 4419ffb9eff5801fdbd385a4a6199b3877f802ad.

The small buffer size currently can lead to failure of is_ssd due to truncated
device names:

readlink("/sys/dev/block/254:7", "../../devices/virtual/block/dm-", 31) = 31
open("/sys/block/dm-/queue/rotational", O_RDONLY) = -1 ENOENT (No such file or directory)

Signed-off-by: Michael Lass <bevan@bi-co.net>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Michael Lass 2015-11-08 16:33:03 +01:00 committed by David Sterba
parent 87ab14013a
commit 28f9f620f3
1 changed files with 1 additions and 1 deletions

2
mkfs.c
View File

@ -1111,7 +1111,7 @@ static int zero_output_file(int out_fd, u64 size)
static int is_ssd(const char *file) static int is_ssd(const char *file)
{ {
blkid_probe probe; blkid_probe probe;
char wholedisk[32]; char wholedisk[PATH_MAX];
char sysfs_path[PATH_MAX]; char sysfs_path[PATH_MAX];
dev_t devno; dev_t devno;
int fd; int fd;