From owner-freebsd-current Wed Apr 26 22:55:52 2000 Delivered-To: freebsd-current@freebsd.org Received: from lamb.sas.com (lamb.sas.com [149.173.1.1]) by hub.freebsd.org (Postfix) with ESMTP id 4A4BB37BE0F for ; Wed, 26 Apr 2000 22:55:49 -0700 (PDT) (envelope-from jwd@unx.sas.com) Received: from mozart (mozart.unx.sas.com [149.173.6.8]) by lamb.sas.com (8.9.3/8.9.1) with SMTP id BAA13604 for ; Thu, 27 Apr 2000 01:55:16 -0400 (EDT) Received: from bb01f39.unx.sas.com by mozart (5.65c/SAS/Domains/5-6-90) id AA01750; Thu, 27 Apr 2000 01:54:36 -0400 Received: (from jwd@localhost) by bb01f39.unx.sas.com (8.9.3/8.9.1) id BAA34693 for freebsd-current@freebsd.org; Thu, 27 Apr 2000 01:54:36 -0400 (EDT) (envelope-from jwd) From: "John W. DeBoskey" Message-Id: <200004270554.BAA34693@bb01f39.unx.sas.com> Subject: Support for large mfs To: freebsd-current@freebsd.org Date: Thu, 27 Apr 2000 01:54:36 -0400 (EDT) X-Mailer: ELM [version 2.4ME+ PL61 (25)] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message