Hi,
Today, we tried to create a 5Gig mfs. It turns out this is
not such a good idea. It turns out that support is basically
limited to an int. Extracts from some of the appropriate files
show some of the problems...
newfs.c:
int fssize; /* file system size */
case 's':
if ((fssize = atoi(optarg)) <= 0)
ufs/ufs/ufsmount.h
/*
* Arguments to mount MFS
*/
struct mfs_args {
char *fspec; /* name to export for statfs */
struct export_args export; /* if exported MFSes are supported */
caddr_t base; /* base of file system in memory */
u_long size; /* size of file system */
};
ufs/mfs/mfsnode.h
struct mfsnode { struct vnode *mfs_vnode; /* vnode associated with this
mfsnode */
caddr_t mfs_baseoff; /* base of file system in memory */
long mfs_size; /* size of memory file system */
pid_t mfs_pid; /* supporting process pid */
struct buf_queue_head buf_queue; /* list of I/O requests */
int mfs_active;
long mfs_spare[1];
};
As can be seen above, the only constant we have is that the size is
atleast a 4 byte entity.
Before we start changing the size from an int/long/u_long to a
quad_t, is there a better way to do this? How does md fit into the
picture?
Thanks!
John
ps: On a side note, what is the correct way to create a quad_t constant
in the config file? The following works, but seems dirty:
options MAXDSIZ="((__int64_t)5*1024*1024*1024)"
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message