Re: Switching to iterate_shared

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

 



On Tue, Aug 16, 2022 at 04:14:38PM -0400, Jan Harkes wrote:
> On Tue, Aug 16, 2022 at 03:35:46PM -0400, Matthew Wilcox wrote:
> > fs/coda/dir.c:  .iterate        = coda_readdir,
> > 
> > Would anyone notice if we broke CODA?  Maintainers cc'd anyway.
> 
> Ha, yes I think I would notice, but probably not until after the changes
> got released and trickled down to the distributions ;)

I'm sorry about that.  I got confused with Intermezzo, which we already
deleted in 2004.

> So good to know in advance a change like this is coming. I'll have to
> educate myself on this shared vs non-shared filldir.

>From Documentation/filesystems/porting.rst:

->iterate_shared() is added; it's a parallel variant of ->iterate().
Exclusion on struct file level is still provided (as well as that
between it and lseek on the same struct file), but if your directory
has been opened several times, you can get these called in parallel.
Exclusion between that method and all directory-modifying ones is
still provided, of course.

Often enough ->iterate() can serve as ->iterate_shared() without any
changes - it is a read-only operation, after all.  If you have any
per-inode or per-dentry in-core data structures modified by ->iterate(),
you might need something to serialize the access to them.  If you
do dcache pre-seeding, you'll need to switch to d_alloc_parallel() for
that; look for in-tree examples.

Old method is only used if the new one is absent; eventually it will
be removed.  Switch while you still can; the old one won't stay.

---

That's probably the best documentation we have about it.



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux