Re: Patch for mapping EILSEQ into NFSERR_INVAL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2013-12-02 22:45, Trond Myklebust wrote:
On Dec 2, 2013, at 15:21, Antti Tönkyrä <daedalus@xxxxxxxxxxxxxxx> wrote:

Hello,

NTFS file system and some other filesystems seem to return EILSEQ when user passes badly formatted data. Current NFSv4 implementation does not map EILSEQ into any known NFSv4 error code which causes problems in some use cases. In my case I observed that if filesystem returns EILSEQ, the NFS share will begin I/O erroring until it's able to recover (If there are handles open to the files in the share, I/O errors will continue until they are closed after which the share recovers after small period of time).

Given that widely used ntfs-3g FUSE module also returns EILSEQ on the same case (I tested this) I would argue that a fix should be done for upstream especially since RFC5661 clearly defines that invalid UTF-8 sequence should map into NFSERR_INVAL, exact quote: "Where the client sends an invalid UTF-8 string, the server should return NFS4ERR_INVAL (see Table 5)".
The NFS client will then happily map that straight into EINVAL for you...

Cheers,
   Trond
Hello,

But if we get a (somewhat) sane error back, we'd avoid the whole NFS share dying in I/O errors because someone decided to touch a file with his terminal having wrong charset (if I understood this correctly). The problem here is that we don't simply get one I/O error from the offending file, but rather that the whole share dies after EILSEQ is returned from the backing filesystem.

BR, Antti
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux