]> www.infradead.org Git - mtd-utils.git/commitdiff
mkfs.jffs2: Add Support for Symlinks to Device Table
authorGrant Erickson <gerickson@nuovations.com>
Fri, 13 Jun 2008 15:46:37 +0000 (01:46 +1000)
committerJosh Boyer <jwboyer@vader.jdub.homelinux.org>
Wed, 18 Jun 2008 13:07:24 +0000 (09:07 -0400)
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>
mkfs.jffs2.1
mkfs.jffs2.c

index 4080032e429e30e6289bafc698a5eddb3a52864c..1eefeda09ed2ffae6b02dfe102d5609c58632f84 100644 (file)
@@ -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.
index f042ae7fc2e4f05d37ddd8faa6321e839b462302..7255536d2a985e979e04cd252ed9001b670ec320 100644 (file)
@@ -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);