Re: [PATCH v4 3/4] fat (exportfs): rebuild directory-inode if fat_dget() fails

From: OGAWA Hirofumi
Date: Sat Oct 13 2012 - 12:50:26 EST


Namjae Jeon <linkinjeon@xxxxxxxxx> writes:

>>>>> + if (!fat_get_dotdot_entry(child_dir->d_inode, &dotdot_bh, &de)) {
>>>>> + parent_logstart = fat_get_start(sbi, de);
>>>>> parent_inode = fat_dget(sb, parent_logstart);
>>>>> + if (parent_inode || sbi->options.nfs != FAT_NFS_NOSTALE_RO)
>>>>> + goto out;
>>>>> + if (!parent_logstart)
>>>>> + /*logstart of dotdot entry is zero if
>>>>> + * if the directory's parent is root
>>>>> + */
>>>>> + parent_inode = sb->s_root->d_inode;
>>>>
>>>> get_parent() should not be called for root dir, right?
>>> Yes.
>>
>> Ah, actual question was - subdir of root can be passed to this? I guess
>> it is possible...
> Yes, you're right.

OK, I think I got where is wrong. If it is the subdir of rootdir,
fat_dget() should get the inode of root?

So, I guess if parent_logstart == 0, it is BUG().
--
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/