Module Name:    src
Committed By:   jdolecek
Date:           Sun Aug 14 11:40:31 UTC 2016

Modified Files:
        src/sys/ufs/ext2fs: ext2fs.h ext2fs_xattr.c

Log Message:
add EXT2F_HAS_ROCOMPAT_FEATURE() macro, and change the current 
EXT2F_HAS_{COMPAT|INCOMPAT}_FEATURE() to take fs as first parameter


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/sys/ufs/ext2fs/ext2fs.h
cvs rdiff -u -r1.2 -r1.3 src/sys/ufs/ext2fs/ext2fs_xattr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/ufs/ext2fs/ext2fs.h
diff -u src/sys/ufs/ext2fs/ext2fs.h:1.43 src/sys/ufs/ext2fs/ext2fs.h:1.44
--- src/sys/ufs/ext2fs/ext2fs.h:1.43	Fri Aug 12 20:26:15 2016
+++ src/sys/ufs/ext2fs/ext2fs.h	Sun Aug 14 11:40:31 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs.h,v 1.43 2016/08/12 20:26:15 macallan Exp $	*/
+/*	$NetBSD: ext2fs.h,v 1.44 2016/08/14 11:40:31 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -341,14 +341,6 @@ struct m_ext2fs {
 	"\02INCOMPAT_FTYPE" \
 	"\01INCOMPAT_COMP"
 
-#define EXT2F_HAS_COMPAT_FEATURE(ip, feature) \
-	((ip)->i_e2fs->e2fs.e2fs_rev >= E2FS_REV1 && \
-	((ip)->i_e2fs->e2fs.e2fs_features_compat & (feature)) != 0)
-
-#define EXT2F_HAS_INCOMPAT_FEATURE(ip, feature) \
-	((ip)->i_e2fs->e2fs.e2fs_rev >= E2FS_REV1 && \
-	((ip)->i_e2fs->e2fs.e2fs_features_incompat & (feature)) != 0)
-
 /*
  * Features supported in this implementation
  *
@@ -375,6 +367,18 @@ struct m_ext2fs {
  */
 #define EXT2_HAS_COMPAT_FEATURE(sb, mask) \
     ((sb)->e2fs.e2fs_features_compat & htole32(mask))
+#define EXT2F_HAS_COMPAT_FEATURE(fs, feature) \
+	((fs)->e2fs.e2fs_rev >= E2FS_REV1 && \
+	((fs)->e2fs.e2fs_features_compat & (feature)) != 0)
+
+#define EXT2F_HAS_ROCOMPAT_FEATURE(fs, feature) \
+	((fs)->e2fs.e2fs_rev >= E2FS_REV1 && \
+	((fs)->e2fs.e2fs_features_rocompat & (feature)) != 0)
+
+#define EXT2F_HAS_INCOMPAT_FEATURE(fs, feature) \
+	((fs)->e2fs.e2fs_rev >= E2FS_REV1 && \
+	((fs)->e2fs.e2fs_features_incompat & (feature)) != 0)
+
 
 /*
  * Definitions of behavior on errors

Index: src/sys/ufs/ext2fs/ext2fs_xattr.c
diff -u src/sys/ufs/ext2fs/ext2fs_xattr.c:1.2 src/sys/ufs/ext2fs/ext2fs_xattr.c:1.3
--- src/sys/ufs/ext2fs/ext2fs_xattr.c:1.2	Sat Aug 13 07:40:10 2016
+++ src/sys/ufs/ext2fs/ext2fs_xattr.c	Sun Aug 14 11:40:31 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs_xattr.c,v 1.2 2016/08/13 07:40:10 christos Exp $	*/
+/*	$NetBSD: ext2fs_xattr.c,v 1.3 2016/08/14 11:40:31 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_xattr.c,v 1.2 2016/08/13 07:40:10 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_xattr.c,v 1.3 2016/08/14 11:40:31 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -158,7 +158,7 @@ ext2fs_get_block_xattr(struct inode *ip,
 	daddr_t xblk;
 
 	xblk = di->e2di_facl;
-	if (EXT2F_HAS_INCOMPAT_FEATURE(ip, EXT2F_INCOMPAT_64BIT))
+	if (EXT2F_HAS_INCOMPAT_FEATURE(ip->i_e2fs, EXT2F_INCOMPAT_64BIT))
 		xblk |= (((daddr_t)di->e2di_facl_high) << 32);
 
 	/* don't do anything if no attr block was allocated */
@@ -348,7 +348,7 @@ ext2fs_list_block_xattr(struct inode *ip
 	daddr_t xblk;
 
 	xblk = di->e2di_facl;
-	if (EXT2F_HAS_INCOMPAT_FEATURE(ip, EXT2F_INCOMPAT_64BIT))
+	if (EXT2F_HAS_INCOMPAT_FEATURE(ip->i_e2fs, EXT2F_INCOMPAT_64BIT))
 		xblk |= (((daddr_t)di->e2di_facl_high) << 32);
 
 	/* don't do anything if no attr block was allocated */
@@ -390,7 +390,7 @@ ext2fs_listextattr(void *v)
 	const char *prefix;
 	size_t listsize = 0;
 
-	if (!EXT2F_HAS_COMPAT_FEATURE(ip, EXT2F_COMPAT_EXTATTR)) {
+	if (!EXT2F_HAS_COMPAT_FEATURE(ip->i_e2fs, EXT2F_COMPAT_EXTATTR)) {
 		/* no EA on the filesystem */
 		goto out;
 	}

Reply via email to