Re: ovl_dir_read_merged: Redundant call to list_add()

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

 



On Tuesday, May 30, 2017 1:35:55 PM IST Amir Goldstein wrote:
> On Tue, May 30, 2017 at 9:39 AM, Chandan Rajendra
> <chandan@xxxxxxxxxxxxxxxxxx> wrote:
> > ovl_dir_read_merged() has the following loop,
> >
> >         for (idx = 0; idx != -1; idx = next) {
> >                 next = ovl_path_next(idx, dentry, &realpath);
> >
> >                 if (next != -1) {
> >                         err = ovl_dir_read(&realpath, &rdd);
> >                         if (err)
> >                                 break;
> >                 } else {
> >                         /*
> >                          * Insert lowest layer entries before upper ones, this
> >                          * allows offsets to be reasonably constant
> >                          */
> >                         list_add(&rdd.middle, rdd.list);
> >                         rdd.is_lowest = true;
> >                         err = ovl_dir_read(&realpath, &rdd);
> >                         list_del(&rdd.middle);
> >                 }
> >         }
> >
> >
> > rdd.middle is populated inside ovl_fill_lowest() which is indirectly invoked
> > by the call to ovl_dir_read() inside the "else" part of the above "if"
> > condition. Before this invocation of ovl_dir_read(), rdd.middle would
> > basically be an empty list. So this would mean that the call
> > list_add(&rdd.middle, rdd.list) is unnecessary.
> >
> > Please let me know if I am missing something here.
> >
> 
> You are missing the fact that rdd.middle is not a new list.
> its a list element inserted into the circular list rdd.list as a marker
> to the head of the non-lowest entries list.
> When referencing &rdd.middle inside ovl_fill_lowest() code
> is referencing the same list that was populated in rdd.list,
> but with a different head/tail.
> 
> 

Amir, Thanks for your clarification.

-- 
chandan

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



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

  Powered by Linux