XFS: bad clientid on recovery on MIPS (VIPT cache)
Ajeet Yadav
ajeet.yadav.77 at gmail.com
Fri Oct 22 00:25:44 CDT 2010
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 at gmail.com>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 at infradead.org>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.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://oss.sgi.com/pipermail/xfs/attachments/20101022/c560068f/attachment.htm>
More information about the xfs
mailing list