mkfs.ubifs issues with mtd-utils 2.1.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

After the switch from mtd-utils 2.0.2 to 2.1.0, mkfs.ubifs fails to
create a file system that it used to be able to create.

Specifically, what is happening is the following:

$ ./mkfs.ubifs -U -D misc/devtable.txt -r arm64/target -o
/tmp/ubifs.img -m 1 -e 65408 -c 2047
Error: Expected symlink

For starters, the error message "Expected symlink" without giving the
offending file name is more annoying than it is helpful. "It didn't
work" doesn't convey much information after all. What, specifically,
didn't work, that is the question.

Using GDB, I was able to track down the file it didn't like. It was
"/dev/console" from the device table:

$ cat misc/devtable.txt
/dev            d 755 0 0 - - - - -
/dev/console    c 600 0 0 5 1 0 0 -

The code that's complaining:

./ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
1533         if (data_len) {
1534                 if (!S_ISLNK(st->st_mode))
1535                         return err_msg("Expected symlink");

Clearly, checking just for symlinks at this points seems to be too
restrictive. /dev/console is a character device, and there is no
reason why mkfs.ubifs should refuse to create it. After all, it has
always worked in the past.

Since I am not entirely sure of the purpose of the check, I am also
unsure what solution to propose. Would
    if (S_ISREG(st->st_mode)) /* error here */
or
    if (S_ISREG(st->st_mode) || S_ISDIR(st->st_mode)) /* error here */
be sufficient? This would allow links, character & block devices, sockets, etc.

Thanks,
-Markus

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux