Re: loop_end_io_transfer

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

 



Gabriel VLASIU wrote:
> On Fri, 28 Aug 2009, Gabriel VLASIU wrote:
> > I receive this error then I try to mount a encrypted loop-AES partition:
> >
> > loop0: loop_end_io_transfer err=-95 bi_rw=0x5
> >
> > For all others encrypted partitions I do not receive this error. Can be
> > ignored? It is safe to stick for now with this kernel?
> >
> > kernel: 2.6.18-164.el5_3g.AES (RHEL 5.4 beta, compiled from sources at:
> >         http://people.redhat.com/dzickus/el5/164.el5/src/kernel-2.6.18-164.el5.src.rpm)
> > loop-AES: 3.2g
> 
> OK, I thing I know why this error occur.
> 
> I use loop0 to mount a partition on top of raid5 array (software).
> File-system is xfs. When partition is about to be mounted kernel xfs module
> want to enable barriers and fail and continue with barriers disabled.
> If I mount the partition with an explicit "nobarrier" option, the error is
> gone.
> 
> # losetup -F /dev/loo0                       <--- no error reported
> # mount /dev/loop0 /mnt/qwer                 <--- error reported
> # mount -o barrier /dev/loop0 /mnt/qwer      <--- error reported
> # mount -o nobarrier /dev/loop0 /mnt/qwer    <--- no error reported
> 
> All other partitions are "normal" ones and barrier can be enabled for
> them (well, at least with this kernel - I've seen the same behavior in
> 2.6.30 from Fedora but not in the previous ones).
> 
> Of course, it would be nice to have no error reported...

err=-95 means:

#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */

bi_rw=0x5 means:

 * bit 0 -- data direction
 *      If not set, bio is a read from device. If set, it's a write to device.
[snip]
 * bit 2 -- barrier
 *      Insert a serialization point in the IO queue, forcing previously
 *      submitted IO to be completed before this one is issued.

Here is what happens:
- File system sends barrier write to loop device.
- Loop encrypts the data (not relevant here).
- Loop device sends barrier write to RAID5 backing device.
- RAID5 backing device not supporting barrier writes at all, so it returns
  EOPNOTSUPP error code.
- Loop device prints error code it got from backing device.
- Loop device returns EOPNOTSUPP error code to file system.
- File system realizes that barrier writes do not work on that device, so it
  switches off barrier writes.
- File system re-sends the write without barrier.

Summary:
File system auto-detects that barriers don't work on that particular device.

If that error message annoys you, then use that -o nobarrier mount option.

-- 
Jari Ruusu  1024R/3A220F51 5B 4B F9 BB D3 3F 52 E9  DB 1D EB E3 24 0E A9 DD

-
Linux-crypto:  cryptography in and on the Linux system
Archive:       http://mail.nl.linux.org/linux-crypto/


[Index of Archives]     [Kernel]     [Linux Crypto]     [Gnu Crypto]     [Gnu Classpath]     [Netfilter]     [Bugtraq]
  Powered by Linux