On Wed, Sep 12, 2018 at 12:13:35AM -0700, Ori Bernstein wrote: > On Tue, 11 Sep 2018 23:29:53 -0700, Ori Bernstein <[email protected]> wrote: > > > static ssize_t > > @@ -362,8 +377,9 @@ qc2_close(void *p) > > struct qcdisk *disk; > > > > disk = p; > > - pwrite(disk->fd, disk->l1, disk->l1sz, disk->l1off); > > - close(disk->fd); > > + if (disk->base) > > + qc2_close(disk->base); > > + free(disk->l1); > > free(disk); > > } > > > > Er, of course, the close should still exist here.
I was curious about qc2_close() calling itself for disk->base. Also, is it worth setting disk->fd = -1 after close(), and adding a check to prevent closing it again? > > -- > Ori Bernstein >
