At Mon, 05 Nov 2012 16:06:26 +0800, Liu Yuan wrote: > >> +static int zero_out_jfile(int fd) > >> +{ > >> + char *buf; > >> + ssize_t wlen; > >> + > >> + buf = valloc(JOURNAL_FILE_SIZE); > >> + memset(buf, 0, JOURNAL_FILE_SIZE); > >> + wlen = xpwrite(fd, buf, JOURNAL_FILE_SIZE, 0); > > > > Isn't it efficent to use truncate and fallocate like as follows? > > > > ftruncate(fd, 0); > > prealloc(fd, JOURNAL_FILE_SIZE); > > > > > > fallocate will allocate physical blocks but the extents of those blocks > is marked as 'unwritten'. So the some writes will be delayed slightly to > change those 'unwritten' extents into 'written' ones of meta data. Okay, makes sense. Thanks, Kazutaka |