All of lore.kernel.org
 help / color / mirror / Atom feed
From: fs <fs@ercist.iscas.ac.cn>
To: linux-kernel <linux-kernel@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Kenichi Okuyama <okuyama@intellilink.co.jp>
Subject: [RFD] What error should FS return when I/O failure occurs?
Date: Mon, 16 May 2005 13:14:25 -0400	[thread overview]
Message-ID: <1116263665.2434.69.camel@CoolQ> (raw)

Hi, ML subscribers,
    
    I'm taking part in the project DOUBT[1], and my sub-project
focuses on the consistency and coherency of FS[2].
    There is something I'm still confused - What error should FS
return when I/O failure occurs? It seems there are no relevant 
documents or standards on this issue.
    
    I'll just show some examples to make things clear:
1. For EXT3 partition , we mount it as RW, but when I/O occurs, the
   I/O related functions return EROFS(ReadOnly?), while other FSes
   return EIO.
2. Assume a program doing the following: open - write(async) - close
   When user-mode app calls sys_write, for EXT2/JFS, no error 
   returns, for EXT3, EROFS returns, for XFS/ReiserFS, EIO returns.

I know each FS has its own implementation, but from users'
perspective, they don't care what FS they're using. So, when 
handling errors from syscall, they can't do the following(p-code):
  ret = sys_write(fd, buf, size);
  if(ret < 0){
     /* the following is I/O failure related. */
     if((IsEXT3() && errno == EROFS) || 
        ((IsXFS() || IsReiserFS()) && errno == EIO)){
        /* do some things about I/O failure */
        ....
     }else{
        ....
     }
   } 
When I/O failure occurs, there should be some standards which 
define the ONLY error that should be returned from VFS, right?
What they should do is (p-code):
  ret = sys_write(fd, buf, size);
  if(ret < 0){
     if(errno == EIO){
        ...
     }else
        ...
  } 
   

Ref
[1]http://developer.osdl.jp/projects/doubt/
[2]http://developer.osdl.jp/projects/doubt/fs-consistency-and-coherency/index.html

regards,
----
Qu Fuping



             reply	other threads:[~2005-05-16  6:06 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-16 17:14 fs [this message]
2005-05-16  6:35 ` [RFD] What error should FS return when I/O failure occurs? Valdis.Kletnieks
2005-05-16 18:04   ` fs
2005-05-16 17:58     ` Valdis.Kletnieks
2005-05-17 16:47       ` fs
     [not found]         ` <200505171057.10540.vda@ilport.com.ua>
2005-05-17 19:41           ` fs
2005-05-16 20:11   ` Kenichi Okuyama
2005-05-16 20:35     ` Valdis.Kletnieks
2005-05-16 21:39       ` Kenichi Okuyama
2005-05-16 22:04         ` Brad Boyer
2005-05-16 22:30         ` Elladan
2005-05-17  6:17           ` Denis Vlasenko
2005-05-17 18:10             ` Bryan Henderson
2005-05-18  6:54               ` Denis Vlasenko
2005-05-17 21:26           ` Kenichi Okuyama
2005-05-19 15:44             ` Elladan
2005-05-16 22:57         ` Coywolf Qi Hunt
2005-05-16 22:54     ` Coywolf Qi Hunt
2005-05-17 16:06       ` fs
2005-05-16 17:36 ` Hans Reiser
2005-05-16 18:04 ` Bryan Henderson
  -- strict thread matches above, loose matches on Subject: below --
2005-05-17  5:36 Hua Zhong (hzhong)
2005-05-17 16:55 ` fs
2005-05-17  6:00 Hua Zhong (hzhong)
2005-05-17 17:20 ` fs
     [not found] <05May16.114248edt.32448@gpu.utcc.utoronto.ca>
2005-05-17 15:43 ` fs
2005-05-17 18:26   ` Bryan Henderson
2005-05-18 17:10     ` fs
2005-05-18  7:57       ` Valdis.Kletnieks
2005-05-18 19:06       ` Bryan Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1116263665.2434.69.camel@CoolQ \
    --to=fs@ercist.iscas.ac.cn \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=okuyama@intellilink.co.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.