Re: [PATCH]QNX6 filesystem (RO) driver

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


> On Wed, Feb 15, 2012 at 07:57:50AM +0000, Al Viro wrote:
>> On Wed, Feb 15, 2012 at 07:11:19AM +0000, Al Viro wrote:
>>
>> > One more thing - unless I'm misreading the code it looks like your
>> ->sb becomes
>> > a dangling pointer once fill_super finishes and ->statfs() is
>> dereferencing
>> > it...
>>
>> BTW, what happens if root directory grows to more than one level of
>> pointers?  AFAICS, qnx6_checkroot() assumes that it won't happen...
>> And why not do that after getting the root inode, anyway?
>
> Ho-hum...  I've added conversion of qnx6_iget() to pagecache and
> checkroot move past getting root; result:
> 	* qnx6_bread/qnx6_getblk are gone
> 	* qnx6_block_map() has only one caller left
> 	* s_inodebits/s_dirent_blk/s_inodes_blk gone
> s_ptrbits remains, of course, but that one has to survive - it determines
> the way indirect blocks' tree is branched.
>
> Remaining issues I see:
> 	* sbi->sb dangling pointer (those brelse() in success case of
> fill_super()).  Probably only one of them needs to be dropped at that
> point, leaving the other in sbi->sb_bh to be dropped by put_super
> 	* sb_set_blocksize() can and will invalidate buffer_heads of the
> wrong size.  qnx6_fill_super() probably needs to redo sb_bread() on the
> primary superblock after it has done the second sb_set_blocksize().
> 	* readdir handling of errors (especially in longname case) needs
> to be done better.
>
> Other than that... this stuff could use some tidying up, but that's not
> a big deal.  I really wonder if these config options are worthwhile -
> might be better to stick endianness and mmi to y unconditionally.  And
> of course all those incrementals are completely untested and might very
> well br broken.

I've fixed sbi->sb and sb_set_blocksize().
I also fixed inodebits thing. (stupid me ... ;))
Missing brelse()'s in dir_longfilename fixed. (together with error handling)

Where do I find your vfs.git tree? Cloned
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git, but could not
find it there.

If I got it right, you would like to always receive complete patches - right?

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux Ext4 Filesystem]     [Ecryptfs]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [CEPH Filesystem]


  Powered by Linux