lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 11 Sep 2014 13:25:31 -0700
From:	"Darrick J. Wong" <darrick.wong@...cle.com>
To:	"Theodore Ts'o" <tytso@....edu>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: [PATCH 10/25] debugfs: create journal handling routines

On Thu, Sep 11, 2014 at 04:14:58PM -0400, Theodore Ts'o wrote:
> On Thu, Sep 11, 2014 at 12:03:49PM -0700, Darrick J. Wong wrote:
> > Will that pick up debugfs/jfs_user.h, though?  I originally tried it this way
> > but gcc seemed to want to pull in the jfs_user.h from e2fsck/.
> 
> Yeah, I figured that out shortly after I sent the message.  The way I
> fixed it was a bit more involved, but I think it's cleaner.
> 
> Long run, what I want to do is to rename libquota to libsupport, and
> then move things like profile.c, recovery.c, revoke.c, etc. into that
> single directory, and then harmonize all of the ugly hacks that we
> have in various different versions of jfs_user.h.  Given that, what I
> did for now was to harmonize (as much as possible) debugfs/jfs_user.h
> and e2fsck/jfs_user.h, and there is now a single version of jfs_user.h
> in e2fsck.  We still have some customizations based on -DDEBUGFS, but
> we can clean that up later.

Ok, thanks for your help! :)

<snip>

> diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in
> index 0f8b598..985c60f 100644
> --- a/lib/ext2fs/Makefile.in
> +++ b/lib/ext2fs/Makefile.in
> @@ -4,7 +4,10 @@ VPATH = @srcdir@
>  top_builddir = ../..
>  my_dir = lib/ext2fs
>  INSTALL = @INSTALL@
> -DEPEND_CFLAGS = -I$(top_srcdir)/debugfs
> +DEPEND_CFLAGS = -I$(top_srcdir)/debugfs -I$(srcdir)/../../e2fsck -DDEBUGFS
> +# This nastyness is needed because of jfs_user.h hackery; when we finally
> +# clean up this mess, we should be able to drop it
> +DEBUGFS_CFLAGS = $(ALL_CFLAGS) -I$(srcdir)/../../e2fsck -DDEBUGFS -DDEBUGFS

Probably not necessary to -DDEBUGFS twice here.

--D

>  
>  @MCONFIG@
>  
> @@ -19,7 +22,8 @@ MK_CMDS=	_SS_DIR_OVERRIDE=../ss ../ss/mk_cmds
>  DEBUG_OBJS= debug_cmds.o extent_cmds.o tst_cmds.o debugfs.o util.o \
>  	ncheck.o icheck.o ls.o lsdel.o dump.o set_fields.o logdump.o \
>  	htree.o unused.o e2freefrag.o filefrag.o extent_inode.o zap.o \
> -	xattrs.o quota.o tst_libext2fs.o create_inode.o
> +	xattrs.o quota.o tst_libext2fs.o create_inode.o journal.o \
> +	revoke.o recovery.o
>  
>  DEBUG_SRCS= debug_cmds.c extent_cmds.c tst_cmds.c \
>  	$(top_srcdir)/debugfs/debugfs.c \
> @@ -39,7 +43,10 @@ DEBUG_SRCS= debug_cmds.c extent_cmds.c tst_cmds.c \
>  	$(top_srcdir)/debugfs/quota.c \
>  	$(top_srcdir)/debugfs/xattrs.c \
>  	$(top_srcdir)/misc/e2freefrag.c \
> -	$(top_srcdir)/misc/create_inode.c
> +	$(top_srcdir)/misc/create_inode.c \
> +	$(top_srcdir)/debugfs/journal.c \
> +	$(top_srcdir)/e2fsck/revoke.c \
> +	$(top_srcdir)/e2fsck/recovery.c
>  
>  OBJS= $(DEBUGFS_LIB_OBJS) $(RESIZE_LIB_OBJS) $(E2IMAGE_LIB_OBJS) \
>  	$(TEST_IO_LIB_OBJS) \
> @@ -338,63 +345,75 @@ extent_cmds.c extent_cmds.h: $(top_srcdir)/debugfs/extent_cmds.ct
>  
>  debugfs.o: $(top_srcdir)/debugfs/debugfs.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  extent_inode.o: $(top_srcdir)/debugfs/extent_inode.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  util.o: $(top_srcdir)/debugfs/util.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  ncheck.o: $(top_srcdir)/debugfs/ncheck.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  icheck.o: $(top_srcdir)/debugfs/icheck.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  ls.o: $(top_srcdir)/debugfs/ls.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  lsdel.o: $(top_srcdir)/debugfs/lsdel.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  dump.o: $(top_srcdir)/debugfs/dump.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  set_fields.o: $(top_srcdir)/debugfs/set_fields.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  logdump.o: $(top_srcdir)/debugfs/logdump.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  htree.o: $(top_srcdir)/debugfs/htree.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  unused.o: $(top_srcdir)/debugfs/unused.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  zap.o: $(top_srcdir)/debugfs/zap.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  quota.o: $(top_srcdir)/debugfs/quota.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
> +
> +journal.o: $(top_srcdir)/debugfs/journal.c
> +	$(E) "	CC $<"
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
> +
> +revoke.o: $(top_srcdir)/e2fsck/revoke.c
> +	$(E) "	CC $<"
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
> +
> +recovery.o: $(top_srcdir)/e2fsck/recovery.c
> +	$(E) "	CC $<"
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  xattrs.o: $(top_srcdir)/debugfs/xattrs.c
>  	$(E) "	CC $<"
> -	$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
> +	$(Q) $(CC) $(DEBUGFS_CFLAGS) -c $< -o $@
>  
>  e2freefrag.o: $(top_srcdir)/misc/e2freefrag.c
>  	$(E) "	CC $<"
> @@ -1083,7 +1102,7 @@ debugfs.o: $(top_srcdir)/debugfs/debugfs.c $(top_builddir)/lib/config.h \
>   $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/debugfs/../misc/nls-enable.h \
>   $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
>   $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
> - $(top_srcdir)/debugfs/../version.h $(top_srcdir)/debugfs/jfs_user.h \
> + $(top_srcdir)/debugfs/../version.h $(srcdir)/../../e2fsck/jfs_user.h \
>   $(srcdir)/kernel-jbd.h $(srcdir)/jfs_compat.h $(srcdir)/kernel-list.h
>  util.o: $(top_srcdir)/debugfs/util.c $(top_builddir)/lib/config.h \
>   $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ss/ss.h \
> @@ -1173,7 +1192,7 @@ logdump.o: $(top_srcdir)/debugfs/logdump.c $(top_builddir)/lib/config.h \
>   $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/debugfs/../misc/nls-enable.h \
>   $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
>   $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
> - $(top_srcdir)/debugfs/jfs_user.h $(srcdir)/kernel-jbd.h \
> + $(srcdir)/../../e2fsck/jfs_user.h $(srcdir)/kernel-jbd.h \
>   $(srcdir)/jfs_compat.h $(srcdir)/kernel-list.h
>  htree.o: $(top_srcdir)/debugfs/htree.c $(top_builddir)/lib/config.h \
>   $(top_builddir)/lib/dirpaths.h $(top_srcdir)/debugfs/debugfs.h \
> @@ -1257,7 +1276,12 @@ e2freefrag.o: $(top_srcdir)/misc/e2freefrag.c $(top_builddir)/lib/config.h \
>   $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
>   $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
>   $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/ext2_ext_attr.h \
> - $(srcdir)/bitops.h $(top_srcdir)/misc/e2freefrag.h
> + $(srcdir)/bitops.h $(top_srcdir)/misc/e2freefrag.h \
> + $(top_srcdir)/debugfs/debugfs.h $(top_srcdir)/lib/ss/ss.h \
> + $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/debugfs/../misc/create_inode.h \
> + $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/debugfs/../misc/nls-enable.h \
> + $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
> + $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
>  create_inode.o: $(top_srcdir)/misc/create_inode.c \
>   $(top_srcdir)/misc/create_inode.h $(top_srcdir)/lib/et/com_err.h \
>   $(top_srcdir)/lib/e2p/e2p.h $(srcdir)/ext2_fs.h \
> @@ -1265,3 +1289,22 @@ create_inode.o: $(top_srcdir)/misc/create_inode.c \
>   $(srcdir)/ext3_extents.h $(srcdir)/ext2_io.h \
>   $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/ext2_ext_attr.h \
>   $(srcdir)/bitops.h $(top_srcdir)/misc/nls-enable.h
> +journal.o: $(top_srcdir)/debugfs/journal.c $(top_builddir)/lib/config.h \
> + $(top_builddir)/lib/dirpaths.h $(srcdir)/../../e2fsck/jfs_user.h \
> + $(srcdir)/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
> + $(srcdir)/ext2fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
> + $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
> + $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/kernel-jbd.h \
> + $(srcdir)/jfs_compat.h $(srcdir)/kernel-list.h
> +revoke.o: $(top_srcdir)/e2fsck/revoke.c $(top_srcdir)/e2fsck/jfs_user.h \
> + $(srcdir)/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
> + $(srcdir)/ext2fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
> + $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
> + $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/kernel-jbd.h \
> + $(srcdir)/jfs_compat.h $(srcdir)/kernel-list.h
> +recovery.o: $(top_srcdir)/e2fsck/recovery.c $(top_srcdir)/e2fsck/jfs_user.h \
> + $(srcdir)/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
> + $(srcdir)/ext2fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
> + $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
> + $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/kernel-jbd.h \
> + $(srcdir)/jfs_compat.h $(srcdir)/kernel-list.h
> diff --git a/lib/ext2fs/ext2_err.et.in b/lib/ext2fs/ext2_err.et.in
> index 6b6d8b8..790d135 100644
> --- a/lib/ext2fs/ext2_err.et.in
> +++ b/lib/ext2fs/ext2_err.et.in
> @@ -521,4 +521,7 @@ ec	EXT2_ET_INODE_IS_GARBAGE,
>  ec	EXT2_ET_EA_BAD_VALUE_OFFSET,
>  	"Extended attribute has an invalid value offset"
>  
> +ec	EXT2_ET_JOURNAL_FLAGS_WRONG,
> +	"Journal flags inconsistent"
> +
>  	end
> diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h
> index b4a9f84..d931fff 100644
> --- a/lib/ext2fs/ext2fs.h
> +++ b/lib/ext2fs/ext2fs.h
> @@ -282,6 +282,9 @@ struct struct_ext2_filsys {
>  
>  	/* Precomputed FS UUID checksum for seeding other checksums */
>  	__u32 csum_seed;
> +
> +	io_channel			journal_io;
> +	char				*journal_name;
>  };
>  
>  #if EXT2_FLAT_INCLUDES
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ