Skip to contentSkip to conversation

LFS/non-LFS error handling

DISCUSSION David Chow 2 participants 3 messages Apr 12, 2002 – Apr 13, 2002 VFS

lore
Share & tools
lore

David Chow

author
#0 lore raw

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

#1 lore raw
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_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.

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.
author
#2 lore raw

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_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.

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