mkjournal.c (ext2fs_add_journal_inode): Move close of file

descriptor so that adding a journal to a mounted
	filesystem doesn't die.  (Fixes a bug accidentally
	introduced in e2fsprogs 1.21.)
bitmap-optimize
Theodore Ts'o 2001-06-22 21:52:14 -04:00
parent 7833262585
commit b23520d050
2 changed files with 14 additions and 6 deletions

View File

@ -1,5 +1,10 @@
2001-06-22 Theodore Tso <tytso@valinux.com>
* mkjournal.c (ext2fs_add_journal_inode): Move close of file
descriptor so that adding a journal to a mounted
filesystem doesn't die. (Fixes a bug accidentally
introduced in e2fsprogs 1.21.)
* mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if
HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has
fchflags without defining UF_NODUMP. (Addresses Debian

View File

@ -321,14 +321,13 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t size, int flags)
/* Create the journal file */
if ((fd = open(jfile, O_CREAT|O_WRONLY, 0600)) < 0)
return errno;
close(fd);
if ((retval = write_journal_file(fs, jfile, size, flags)))
return retval;
goto errout;
/* Get inode number of the journal file */
if (fstat(fd, &st) < 0)
return errno;
goto errout;
#if defined(HAVE_CHFLAGS) && defined(UF_NODUMP)
retval = fchflags (fd, UF_NODUMP|UF_IMMUTABLE);
@ -339,8 +338,9 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t size, int flags)
#endif
#endif
if (retval)
return retval;
goto errout;
close(fd);
journal_ino = st.st_ino;
} else {
journal_ino = EXT2_JOURNAL_INO;
@ -357,6 +357,9 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t size, int flags)
ext2fs_mark_super_dirty(fs);
return 0;
errout:
close(fd);
return retval;
}
#ifdef DEBUG