On Tue, May 08, 2018 at 10:33:05AM +0300, Amir Goldstein wrote: > On Sun, May 6, 2018 at 8:24 PM, Allison Henderson > <allison.henderson@xxxxxxxxxx> wrote: > > This patch adds xfs_attr_remove_args. These sub-routines remove > > the attributes specified in @args. We will use this later for setting > > parent pointers as a deferred attribute operation. > > > > But this patch also adds xfs_defer_init()+xfs_trans_ijoin() > so maybe I am not understanding how this work, but it seems > to be changing logic as well. Sooooo... I went and took another look at this, having realized that xfs_da_args.dfops is a *pointer* to a dfops, not the dfops itself. Subsequently we have a bunch of calls to: xfs_defer_init(args->dfops, ...); which AFAICT is careful enough that we always pair the init with a _finish or a _cancel... but this is really gross behavior. The da_args creators will declare a separate dfops on the stack and set args.dfops to the uninitialized dfops(!) and then the attr code blindly assumes that it owns this dfops pointer and can therefore reinitialize it at will. That will need fixing. > Please say something about this in commit message. "Mugga wugga mugga wugga mugga wugga mugga wugga mugga wugga wugggga!!!" --D > > Thanks, > Amir. > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html