All of lore.kernel.org
 help / color / mirror / Atom feed
From: hujianyang <hujianyang@huawei.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-unionfs@vger.kernel.org
Subject: Re: Cursor in readdir
Date: Fri, 5 Dec 2014 17:47:05 +0800	[thread overview]
Message-ID: <54817F19.4010609@huawei.com> (raw)
In-Reply-To: <CAJfpegt5vmDG-8=CoD1-FbHoMQFmFKvPELoU6OiUULoffkb-vQ@mail.gmail.com>

On 2014/12/1 23:26, Miklos Szeredi wrote:
> On Sat, Nov 29, 2014 at 11:11 AM, hujianyang <hujianyang@huawei.com> wrote:
>> Hi Miklos,
>>
>> Sorry for disturb you. I'm confused with *cursor* in struct
>> ovl_dir_file. I know this struct ovl_cache_entry *cursor* is
>> presented to indicate current pos when performing readdir at
>> a MERGE type directory.
>>
>> Why this additional entry is needed? Can't we use a pointer
>> to record which entry is read or is ready for reading? After
>> finish reading lower and upper directories, entries in struct
>> ovl_dir_cache is stabilized. Changing of directories will
>> cause the later .readdir() to create a new ovl_dir_cache but
>> the old cache will not be released until all the holders of
>> it call .release().
>>
>> So I think a pointer points to an entry in the entry list of
>> ovl_dir_cache is enough to each process sharing the access
>> of the same cache. We don't need to keep and move an special
>> entry, *cursor*. That's my thought.
> 
> Cursors are safe against removal of current entry.   However, we don't
> do that here, AFAICS, so I think you are correct in that the cursor is
> not actually needed here.
> 

Thanks~!

Do you think it's valuable to discard the using of *cursor* and
use a pointer instead? Or maybe we will enable some remove
operations for ovl_dir_cache in the future so we should keep
this mechanism.

What's your opinion? I'd like to change this part and see if
the usage of a pointer could speed up .readdir() on a merged
directory.

Cheers,

Hu



  reply	other threads:[~2014-12-05  9:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-29 10:11 Cursor in readdir hujianyang
2014-12-01 15:26 ` Miklos Szeredi
2014-12-05  9:47   ` hujianyang [this message]
2014-12-05 10:50     ` Miklos Szeredi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54817F19.4010609@huawei.com \
    --to=hujianyang@huawei.com \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.