diff options
author | Grant Erickson <gerickson@nuovations.com> | 2008-06-14 01:46:37 +1000 |
---|---|---|
committer | Josh Boyer <jwboyer@vader.jdub.homelinux.org> | 2008-06-18 09:07:24 -0400 |
commit | d769da93a56590c23ce9430a1d970e31e835ae88 (patch) | |
tree | b8464ef87a475f2c5e4669de92da850c0019d7b4 | |
parent | 1263a74aff28f969043c89d0235b332529df4a30 (diff) |
mkfs.jffs2: Add Support for Symlinks to Device Table
Added support for symbolic links to the grammar of the device table file
such that links that already exist in the root working directory may
have their permissions and ownership changed. Creating symbolic links
anew is still unsupported.
Added a note to this effect in the manual reference page.
Print out the type character when encountering an unsupported file type
(e.g. symbolic links when created anew).
Signed-off-by: Grant Erickson <gerickson@nuovations.com>
Signed-off-by: Josh Boyer <jwboyer@vader.jdub.homelinux.org>
-rw-r--r-- | mkfs.jffs2.1 | 8 | ||||
-rw-r--r-- | mkfs.jffs2.c | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/mkfs.jffs2.1 b/mkfs.jffs2.1 index 4080032..1eefeda 100644 --- a/mkfs.jffs2.1 +++ b/mkfs.jffs2.1 @@ -241,6 +241,14 @@ Display version information. Generate an appendage image for FILE. If FILE is written to flash and flash is appended with the output, then it seems as if it was one thing. +.SH LIMITATIONS +The format and grammar of the device table file does not allow it to +create symbolic links when the symbolic links are not already present +in the root working directory. + +However, symbolic links may be specified in the device table file +using the \fIl\fR type for the purposes of setting their permissions +and ownership. .SH BUGS JFFS2 limits device major and minor numbers to 8 bits each. Some consider this a bug. diff --git a/mkfs.jffs2.c b/mkfs.jffs2.c index f042ae7..7255536 100644 --- a/mkfs.jffs2.c +++ b/mkfs.jffs2.c @@ -544,8 +544,11 @@ static int interpret_table_entry(struct filesystem_entry *root, char *line) case 'b': mode |= S_IFBLK; break; + case 'l': + mode |= S_IFLNK; + break; default: - error_msg_and_die("Unsupported file type"); + error_msg_and_die("Unsupported file type '%c'", type); } entry = find_filesystem_entry(root, name, mode); if (entry) { @@ -604,7 +607,7 @@ static int interpret_table_entry(struct filesystem_entry *root, char *line) } break; default: - error_msg_and_die("Unsupported file type"); + error_msg_and_die("Unsupported file type '%c'", type); } } free(name); |