Messages in this thread | | | Date | Mon, 2 Nov 2015 18:13:34 -0800 | Subject | Re: [PATCH] add support for larger files in minix filesystem | From | Joshua Hudson <> |
| |
No response. I suppose I must be doing something wrong ...
On 11/1/15, Joshua Hudson <joshudson@gmail.com> wrote: > From: Joshua Hudson <joshudson@gmail.com> > > The Minix v3 filesystem and kernel driver have no actual dependency on > files > being less than 2GB in size; however the kernel does not allow creating a > file of 2GB or larger on a Minix v3 filesystem. I was able to remove the > pseudo- > dependency easily by changing one line of code (filesystems need to tell > VFS > how big of files they allow). > > This code won't do anything useful unless the filesystem superblock is > patched at offset 1040 to a larger value. The largest safe value is > 0,252,255,255. > > Signed-off-by Joshua Hudson <joshudson@gmail.com> > --- > I'm not on the list anymore so if you don't CC me I won't see it. > > Background: I've been playing around with work on a new embedded device. > where the hardware simply isn't powerful enough to sustain ext2 filesystem. > This resulted in me choosing the Minix filesystem as the operational > filesystem > for reasons including find-next-free-block is sixteen times faster than > FAT. > I discovered the need to collect about 3gb of sensor data in one tape-like > run. > Naturally, this leads to creating a 3gb file; but Linux Kernel can't > handle that. > > Please note I'm pretty far down branches and I don't think a stock kernel > will run on my system (non-free hardware drivers). Thankfully the Minix fs > code changes so slowly this should apply all the same. I have tested that > the patch applies and builds a kernel that fixes the problem. > > The fact that the superblock has to be edited for the patch to do anything > interesting (else it replaces s_maxbytes with the same value) makes this > quite safe to apply even in the presence of a bug I don't know about. > > --- linux-4.2.3/fs/minix/inode.c.orig 2015-11-01 17:13:57.227148723 -0800 > +++ linux-4.2.3/fs/minix/inode.c 2015-11-01 17:21:49.785390753 -0800 > @@ -232,6 +232,7 @@ > s->s_max_links = MINIX2_LINK_MAX; > } else > goto out_no_fs; > + s->s_maxbytes = (unsigned)sbi->s_max_size; /* s_max_size > cannot be >=4GB and MAX_LFS_SIZE must be >= 4GB */ > > /* > * Allocate the buffer map to keep the superblock small. >
| |