Re: XFS: bad clientid on recovery on MIPS (VIPT cache)

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

 



Hello,
I wish to know, why the problem of bad clientid does not come, if we safely umount the USB storage device.
Also if anyone can help where XFS uses these flush_kernel_vmap_range/invalidate_kernel_vmap_range.
 
With what ever understanding I have developed about log recovery that buffer "dbp" is updated with new value in xlog_bread(), but the cache hold buffer lines of last iteration, I think if we can can dpd pages uncachable than it may solve this problem, pls comment if I am wrong.  
     
dbp = xlog_get_bp(log, BTOBB(h_size)); --------> In function xlog_do_recovery_pass()    
 
for (blk_no = tail_blk; blk_no < head_blk; ) {
.
    error = xlog_bread(log, blk_no + hblks, bblks, dbp,
                               &offset);
    if (error)
            goto bread_err2;
    xlog_unpack_data(rhead, offset, log);
    if ((error = xlog_recover_process_data(log,
                   rhash, rhead, offset, pass)))
        goto bread_err2;
   blk_no += bblks + hblks;
}  


 
On Thu, Oct 21, 2010 at 6:57 PM, Ajeet Yadav <ajeet.yadav.77@xxxxxxxxx> wrote:
Thanks for response,
 
Linux kernel I am using is 2.6.30, where as XFS I have ported until 2.6.34 on given kernel.
Do you think I need the mentioned API flush_kernel_vmap_range/invalidate_kernel_vmap_range in 2.6.30.9 as well.I will be grateful if you can provide me sample code for the above API.  


 
On Thu, Oct 21, 2010 at 6:22 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
On Thu, Oct 21, 2010 at 05:41:43PM +0530, Ajeet Yadav wrote:
> Dear member,
> If I remove USB flash storage from PC/ARM/MIPS target (i.e
> without umount) while copying file to XFS partition and connect it to MIPS
> target I always get
> XFS: xlog_recover_process_data: bad clientid
> XFS: log mount/recovery failed: error 5
> XFS: log mount failed
> This problem does not occur, if I connect the same USB flash to PC/ARM
> target.
> I have tested this on 2.6.30 - 2.6.34 (It everywhere when concerend with
> MIPS)

Since Linux 2.6.34 Linux uses the flush_kernel_vmap_range/
invalidate_kernel_vmap_range APIs to make I/O to vmapped
areas work on systems with virtually indexed caches.

Unfortunately only arm, parisc and sh actually implement these so far.
You'll need to implement an implementation of these APIs for your cache
architecture to make XFS work on MIPS with virtually indexed caches.


_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs

[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux