vfs/mount/rs/service changes:

. changed umount() and mount() to call 'service', so that it can include
   a custom label, so that umount() works again (RS slot gets freed now).
   merged umount() and mount() into one file to encode keep this label
   knowledge in one file.
 . removed obsolete RS_PID field and RS_RESCUE rescue command
 . added label to RS_START struct
 . vfs no longer does kill of fs process on unmount (which was failing
   due to RS_PID request not working)
 . don't assume that if error wasn't one of three errors, that no error
   occured in vfs/request.c
mfs changes:
 . added checks to copy statements to truncate copies at buffer sizes
   (left in debug code for now)
 . added checks for null-terminatedness, if less than NAME_MAX was copied
 . added checks for copy function success
is changes: 
 . dump rs label
drivers.conf changes:
 . added acl for mfs so that mfs can be started with 'service start',
   so that a custom label can be provided
This commit is contained in:
Ben Gras
2007-01-22 15:25:41 +00:00
parent d954a122f7
commit 2194bc0310
23 changed files with 300 additions and 222 deletions

View File

@@ -555,7 +555,6 @@
#define RS_DOWN (RS_RQ_BASE + 1) /* stop system service */
#define RS_REFRESH (RS_RQ_BASE + 2) /* refresh system service */
#define RS_RESTART (RS_RQ_BASE + 3) /* restart system service */
#define RS_RESCUE (RS_RQ_BASE + 4) /* set rescue directory */
#define RS_SHUTDOWN (RS_RQ_BASE + 5) /* alert about shutdown */
#define RS_UP_COPY (RS_RQ_BASE + 6) /* start system service and
* keep the binary in memory
@@ -567,7 +566,6 @@
# define RS_CMD_ADDR m1_p1 /* command string */
# define RS_CMD_LEN m1_i1 /* length of command */
# define RS_PID m1_i1 /* pid of system service */
# define RS_PERIOD m1_i2 /* heartbeat period */
# define RS_DEV_MAJOR m1_i3 /* major device number */

View File

@@ -17,5 +17,7 @@
#define _PATH_TMP "/tmp"
#define _PATH_BSHELL "/bin/sh"
#define _PATH_SERVICE "/bin/service"
#define _PATH_DRIVERS_CONF "/etc/drivers.conf"
#endif

View File

@@ -31,6 +31,8 @@ struct rs_start
int rss_nr_pci_class;
struct { u32_t class; u32_t mask; } rss_pci_class[RSS_NR_PCI_CLASS];
u32_t rss_system[RSS_NR_SYSTEM];
char *rss_label;
size_t rss_labellen;
};
#define RF_COPY 0x01 /* Copy the brinary into RS to make it possible
@@ -51,3 +53,4 @@ struct rs_pci
int rsp_nr_class;
struct { u32_t class; u32_t mask; } rsp_class[RSP_NR_CLASS];
};