Re: number of hardlinks for directory in ls -lid always 1?

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

 



On Fri, Mar 20, 2015 at 12:39 PM, David Sterba <dsterba@xxxxxxx> wrote:
> On Thu, Mar 19, 2015 at 09:47:15PM +0000, Filipe David Manana wrote:
>> On Thu, Mar 19, 2015 at 1:21 PM, David Sterba <dsterba@xxxxxxx> wrote:
>> > On Wed, Mar 18, 2015 at 03:23:50PM +0100, Martin Steigerwald wrote:
>> >> It explains that having a correct hardlink number for directory is not
>> >> mandatory, but it doesn´t explain why BTRFS always has 1 in there instead
>> >> of the actual count of hardlinks. Is this an performance optimization for
>> >> BTRFS or are there any other reasons why BTRFS does it this way?
>> >
>> > I believe it's for performance reasons. New inodes do not update the
>> > parent directory metadata wrt link counts, compared to other filesystems
>> > that do that.
>>
>> Weird. Because creating a new inode implies adding the dentry to the
>> parent directory, which implies updating the directory's i_size.
>
> I wonder why the link count is not maintained then. The directory inode
> is modified anyway, add a few ifs here and there will not make things
> worse and we could get rid of this special behaviour, plus find could
> use the link count reliably.
>
> It can be turned on in a fully backward compatible way:
>
> * new directories/subvolumes will get dir nlink set to 2
> * if mkdir/rmdir/move sees a parent link count of 1, no change
> * otherwise inc/dec the link count for new subdirectoris/subvolumes
>
> Jeff Liu reported a problem, without further details
> http://article.gmane.org/gmane.comp.file-systems.btrfs/14628
>
> so I still might be missing something.

Maybe this was all before delayed inodes were introduced, where
updating inode items always implied touching the btrees.



-- 
Filipe David Manana,

"Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men."
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux