Re: [PATCH v5 7/8] fat (exportfs): rebuild directory-inode iffat_dget() fails

From: Namjae Jeon
Date: Tue Jan 29 2013 - 01:27:05 EST


2013/1/28, OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>:
> Namjae Jeon <linkinjeon@xxxxxxxxx> writes:
>
>>>> Although checking several routines to check hang case you said, I
>>>> didn't find anything.
>>>> And There is no any race on test result also. Am I missing something ?
>>>> Let me know your opinion.
>>>
>>> Hm, it's read-only. So, there may not be race for now, I'm sure there is
>>> race on write path though.
>> Yes, right. We checked/tested on read-only.
>> Maybe have you found race with rename and unlink ?
>> If yes, I think we can fix this issue with lock like this.
>>
>> + mutex_lock(&MSDOS_SB(sb)->s_lock);
>> parent_inode = fat_rebuild_parent(sb,
>> parent_logstart);
>> + mutex_unlock(&MSDOS_SB(sb)->s_lock);
>
> It is any changes to directory. ->s_lock is not preferred. We need only
> per-directory lock (i.e. dir->i_mutex).
>
> To do this, we need more bigger changes though. E.g. register temporary
> inode to central list. Then, find it when building real inode. If found
> temporary, grab it, and make update it as real inode.
>
> Yes, this is a bit complex. But we would need something like this for
> write support.

First Thanks for review and help. We will try to fix it as your
suggestion now for the Write path.
There is one suggestion. As per discussion before, your suggestion was
that, we will merge read-only support for FAT exportfs first.
And the current patch set has no issues for read-only.
So If you accept, Can I try to re-send current patch-set (read-only)
first? And we will then additionally start to fix issues related with
write path step by step.
Let me know your opinion.

Thanks OGAWA!
>
> Thanks.
> --
> OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/