lkml.org 
[lkml]   [2012]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v5 7/8] fat (exportfs): rebuild directory-inode if fat_dget() fails
From
2012/12/5, Namjae Jeon <linkinjeon@gmail.com>:
> 2012/12/5, OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>:
>> Namjae Jeon <linkinjeon@gmail.com> writes:
>>
>>>>>> This became much better than before. However, we have to consolidate
>>>>>> the
>>>>>> code with fat_search_long() finally.
>>>>>>
>>>>>> E.g. this version is having the issue already fixed. If there is
>>>>>> corruption in fat cluster-chain, it lead to infinite
>>>>>> loop. fat_get_cluster() checks infinite loop by limit.
>>>>> since, the focus this time was for NFS functionality for FAT (removing
>>>>> ESTALE error). The changes were made in that context.
>>>>>
>>>>> Later, we can make the changes as part of code reorganizing which can
>>>>> be controlled via. Separate patches which do not have any impact on
>>>>> default functionality and verification can be carried out in that
>>>>> scope.
>>>>
>>>> Right. But non-production code shouldn't go into linus tree. I meant,
>>>> we
>>>> can test this patch series, but not yet production quality.
>>> Is there any other thing which seems potential issue than offsetof()?
>>> if yes, which problem didn't lead to production quality do you think ?
>>>
>>> +#define FAT_FID_SIZE_WITHOUT_PARENT (offsetof(struct fat_fid, \
>>> + parent_i_pos_hi)/4)
>>> Since this expression does not result proper integer value, so will it
>>> be correct to directly put the value like
>>> +#define FAT_FID_SIZE_WITHOUT_PARENT 3
>>
>> The issue is what I explained in the above "E.g.".
>>
>> Directory traversal logic should be consolidate with fat_search_log().
>> Otherwise, like this nfs implement, we will introduce
>> already-fixed-problem
>> again. And we will be bothered to fix same issue in future.
> Okay, We will check how we can consolidate the 2 paths to avoid any issue.
Hi OGAWA.

On checking fat_search_long() logic, it is observed that it performs
name based lookup of the entries in a given directory.
In fat_get_parent(), we do not have such information to use the
existing API to reconstruct the parent inode.
Could you give me some hint or guide to consolidate smoothly
fat_search_long and current traverse_logic ?

Thanks.

>
> Thanks OGAWA!
>> --
>> OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
>>
>


\
 
 \ /
  Last update: 2012-12-15 12:21    [W:0.088 / U:2.068 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site