LFS/non-LFS error handling
Dear all,
If my fs don't support LFS (files larger than 4GB), what should I set in my sb->s_maxbytes? In kernel 2.4.2 , I have experieced if not set the s_maxbytes generic_file_write() will fail, but for later version of kernel I simply leave it unset, so far I don't have any problem. If it is wrong, what should s_maxbytes=? . Since this behaviour changes across kernel version, is there a standard implemenation?
Since it still work for me for not setting the s_maxbytes, it seems to me there is a potential risk of data corruption at limit points, because don't know who to handle the over flow situation, does this handle by VFS? or I have to take care myself? Thanks.
regards,
David
Quoted 4 lines · David Chow
Dear all,
If my fs don't support LFS (files larger than 4GB), what should I set in my
sb->s_maxbytes?
MAX_NON_LFS.
Quoted 10 lines
In kernel 2.4.2 , I have experieced if not set the
s_maxbytesgeneric_file_write()will fail, but for later version of kernel I simply leave it unset, so far I don't have any problem. If it is wrong, what should s_maxbytes=? . Since this behaviour changes across kernel version, is there a standard implemenation?Since it still work for me for not setting the
s_maxbytes, it seems to me there is a potential risk of data corruption at limit points, because don't know who to handle the over flow situation, does this handle by VFS? or I have to take care myself? Thanks.
The VFS will initialize sb->s_maxbytes to MAX_NON_LFS if you don't.
There was one kernel version (2.4.2, I think, or maybe 2.4.3) when you _had_ to set it, otherwise writes would fail -- as you discovered yourself.
Ion
Signature · 2 lines
It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.Actually, I tested long ago with RedHat 7.1 kernel 2.4.2-2 which is properly a 2.4.3 (I don't know but it seems to be) . I am trying to automate the compiling process for my fs and discovering kernel version issues, it seems there are so many kernel version issues as well. We try to distribute a generic binary kernel module with patching kernel version symbols with /proc/ksysms during installation so that users don't have to custom build using kernel source when they do installation, that's why we are now studying kernel version dependencies. Also some of the calls seems have different storage sizes among different versions even we stick with 2.4.x only.
I really want to find my way on solving dependency issues among different kernel version but not recompiling from source.
regards,
David
Quoted 21 lines · Ion Badulescu
Quoted 4 lines · David Chow
Dear all,
If my fs don't support LFS (files larger than 4GB), what should I set in my
sb->s_maxbytes?
MAX_NON_LFS.Quoted 4 lines
In kernel 2.4.2 , I have experieced if not set the
s_maxbytesgeneric_file_write()will fail, but for later version of kernel I simply leave it unset, so far I don't have any problem. If it is wrong, what should s_maxbytes=? . Since this behaviour changes across kernel version, is there a standard implemenation?Since it still work for me for not setting the
s_maxbytes, it seems to me there is a potential risk of data corruption at limit points, because don't know who to handle the over flow situation, does this handle by VFS? or I have to take care myself? Thanks.The VFS will initialize
sb->s_maxbytestoMAX_NON_LFSif you don't.There was one kernel version (2.4.2, I think, or maybe 2.4.3) when you _had_ to set it, otherwise writes would fail -- as you discovered yourself.
Ion