Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jul 2012 18:20:21 +0000
From:      gpf@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r239245 - soc2012/gpf/pefs_kmod/sbin/pefs
Message-ID:  <20120710182021.AFF931065670@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gpf
Date: Tue Jul 10 18:20:20 2012
New Revision: 239245
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239245

Log:
  code refactoring for userland code (mostly stylistic changes)
  

Modified:
  soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c
  soc2012/gpf/pefs_kmod/sbin/pefs/pefs_ctl.h

Modified: soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c
==============================================================================
--- soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c	Tue Jul 10 17:32:52 2012	(r239244)
+++ soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c	Tue Jul 10 18:20:20 2012	(r239245)
@@ -57,7 +57,7 @@
 
 #include "pefs_ctl.h"
 
-#define PEFS_INTEGRITY_DEBUG
+//#define PEFS_INTEGRITY_DEBUG
 #if defined (PEFS_INTEGRITY_DEBUG)
 #define dprintf(a)		printf a
 #else
@@ -72,15 +72,21 @@
 #define PEFS_HASH_BYTE_ALIGNMENT 512
 #define PEFS_EXTRA_TABLE_SIZE 15
 
+/* tail that contains a single file's checksums */
 TAILQ_HEAD(checksum_head, checksum);
+/* tail that contains all file headers that require integrity checking */
 TAILQ_HEAD(file_header_head, file_header);
+/* tail for all the file_headers that refere to the same inode */
 TAILQ_HEAD(hardlink_fh_head, file_header);
 
+/* RB tree for hardlink counters */
 RB_HEAD(hardlink_head, hardlink_counter);
 RB_PROTOTYPE(hardlink_head, hardlink_counter, hardlink_entries, pefs_rb_cmp);
 
-#define PEFS_CFH_SIZE 16	/* on disk size of .pefs.checksum's unique file header */
-#define PEFS_FH_SIZE 16		/* on disk size of a single file header (also a bucket in cuckoo hashing) */
+/* on disk size of .pefs.checksum's unique file header */
+#define PEFS_CFH_SIZE 16
+/* on disk size of a single file header (also a bucket in cuckoo hashing) */
+#define PEFS_FH_SIZE 16
 
 /* this struct is used to check if all hardlinks for a given inode are supplied by the user */
 struct hardlink_counter {
@@ -206,7 +212,8 @@
 	else {
 		/* feed parent directory to ioctl() */
 		strlcpy(xsl.pxsl_filename, fhp->filename, sizeof(xsl.pxsl_filename));
-		xsl.pxsl_namelen = strnlen(xsl.pxsl_filename, sizeof(xsl.pxsl_filename));
+		xsl.pxsl_namelen = strnlen(xsl.pxsl_filename,
+			sizeof(xsl.pxsl_filename));
 
 		error = ioctl(fhp->pfd, PEFS_GETSLINKCTEXT, &xsl);
 		if (error != 0) {
@@ -216,7 +223,8 @@
 
 		dprintf(("read %d bytes from kernel\n\n", xsl.pxsl_slink_len));
 		dprintf(("printing contents of buf:"));
-		for (i=0; i < (int)xsl.pxsl_slink_len; i++) dprintf(("%c", xsl.pxsl_slink[i]));
+		for (i=0; i < (int)xsl.pxsl_slink_len; i++)
+			dprintf(("%c", xsl.pxsl_slink[i]));
 		dprintf(("!\n"));
 		buf = xsl.pxsl_slink;
 		buf_len = xsl.pxsl_slink_len;
@@ -378,16 +386,18 @@
 }
 
 static int
-pefs_allocate_hash_table(struct cuckoo_hash_table *chtp, uint32_t nelements, int alloc_flag)
+pefs_allocate_hash_table(struct cuckoo_hash_table *chtp, uint32_t nelements,
+	int alloc_flag)
 {
 	uint32_t i;
 
 	if (alloc_flag == PEFS_EXTEND) {
 		/*
-		 * spending 15% more space for each table lowers the chance to fall into an
-		 * infinite loop during cuckoo insertion to about 1.5%.
+		 * spending 15% more space for each table lowers the chance to fall into
+		 * an infinite loop during cuckoo insertion to about 1.5%.
 		 */
-		chtp->size = pefs_next_prime(nelements + ((nelements * PEFS_EXTRA_TABLE_SIZE)/100));
+		chtp->size = pefs_next_prime(nelements +
+				((nelements * PEFS_EXTRA_TABLE_SIZE)/100));
 		chtp->nelements = nelements;
 		if (chtp->size < chtp->nelements) {
 			pefs_warn("numeric overflow while computing hash table size");
@@ -398,7 +408,7 @@
 		chtp->size = nelements;
 		chtp->nelements = nelements;
 	}
-	/* reallocate the hash tables in case of infinite loop during cuckoo insert */
+	/* re-alloc the hash tables in case of infinite loop during cuckoo insert */
 	else if (alloc_flag == PEFS_REALLOC) {
 		chtp->size = pefs_next_prime(chtp->size + 1);
 			if (chtp->size < chtp->nelements) {
@@ -527,7 +537,8 @@
 {
 	uint32_t nbucket;
 
-	nbucket = fnv_64_buf(&(fhp->file_id), sizeof(fhp->file_id), FNV1_64_INIT) % chtp->size;
+	nbucket = fnv_64_buf(&(fhp->file_id), sizeof(fhp->file_id), FNV1_64_INIT) %
+			chtp->size;
 	dprintf(("hash2: goto bucket %d\n", nbucket));
 
 	return (nbucket);
@@ -573,7 +584,7 @@
 	res = pefs_cuckoo_lookup(chtp, elem);
 	if (res != NULL) {
 		pefs_warn("file identifier collision detected between files: %s & %s",
-				res->path, elem->path);
+			res->path, elem->path);
 		return (PEFS_ERR_EXIST);
 	}
 
@@ -619,7 +630,6 @@
 		fhp = chtp->buckets1[i].fhp;
 		dprintf(("\nbucket %d with element: %d\n", i, fhp == NULL ? 0 : 1));
 		if (fhp != NULL) {
-			//dprintf(("\tpath=%s\tid = %llu\tnhashes = %d\n", fhp->path, fhp->file_id, fhp->nhashes));
 			dprintf(("\tid = %llu\tnhashes = %d\n", fhp->file_id, fhp->nhashes));
 			if (fhp->path[0] == '/')
 				dprintf(("\tpath = %s\n", fhp->path));
@@ -637,7 +647,6 @@
 		fhp = chtp->buckets2[i].fhp;
 		dprintf(("\nbucket %d with element: %d\n", i, fhp == NULL ? 0 : 1));
 		if (fhp != NULL) {
-			//dprintf(("\tpath=%s\tid = %llu\tnhashes = %d\n", fhp->path, fhp->file_id, fhp->nhashes));
 			dprintf(("\tid = %llu\tnhashes = %d\n", fhp->file_id, fhp->nhashes));
 			if (fhp->path[0] == '/')
 				dprintf(("\tpath = %s\n", fhp->path));
@@ -683,7 +692,8 @@
 
 		r = pefs_name_pton(enc, enc_len, buf, buf_len);
 		if (r <= 0) {
-			pefs_warn("failed to extract file id from encrypted filename: %s", fhp->filename);
+			pefs_warn("failed to extract file id from encrypted filename: %s",
+				fhp->filename);
 			error = PEFS_ERR_GENERIC;
 		}
 		else {
@@ -707,7 +717,8 @@
 		fhp->file_id = be64toh(temp);
 	}
 	else
-		pefs_warn("failed to fetch file id from kernel for filename: %s", fhp->filename);
+		pefs_warn("failed to fetch file id from kernel for filename: %s",
+			fhp->filename);
 
 	return (error);
 }
@@ -773,8 +784,8 @@
 			if (error == 0) {
 				res = pefs_cuckoo_lookup(chtp, &targetfh);
 				if (res == NULL)
-					pefs_warn("target file %s of symlink %s was not found in inputlist",
-						targetfh.path, fhp->path);
+					pefs_warn("target file %s of symlink %s was not "
+						"found in inputlist", targetfh.path, fhp->path);
 			}
 			pefs_close_file(&targetfh);
 		}
@@ -807,7 +818,8 @@
 
 	RB_FOREACH(hlcp, hardlink_head, hlc_headp) {
 		if (hlcp->total_links > hlcp->links_found) {
-			pefs_warn("%d hard link(s) of total %d were found in input list for file with inode: %d",
+			pefs_warn("%d hard link(s) of total %d were found in input list "
+				"for file with inode: %d",
 				hlcp->links_found, hlcp->total_links, hlcp->inode);
 			i = 1;
 			TAILQ_FOREACH(fhp, &(hlcp->file_headers), fh_hardlink_entries) {
@@ -818,7 +830,8 @@
 }
 
 static int
-pefs_rb_insert(struct hardlink_head *hlc_headp, struct file_header *fhp, struct stat *sbp)
+pefs_rb_insert(struct hardlink_head *hlc_headp, struct file_header *fhp,
+		struct stat *sbp)
 {
 	struct hardlink_counter find, *res, *new_hlcp;
 
@@ -873,7 +886,8 @@
 
 /* open a file and perform various semantic checks on it */
 static int
-pefs_open_semantic_checks(struct file_header *fhp, struct statfs *fsp, struct hardlink_head *hlc_headp, int flags)
+pefs_open_semantic_checks(struct file_header *fhp, struct statfs *fsp,
+	struct hardlink_head *hlc_headp, int flags)
 {
 	char dirbuf[MAXPATHLEN + 1], namebuf[MAXNAMLEN + 1];
 	char sbuf[MAXPATHLEN + 1];
@@ -902,7 +916,8 @@
 	}
 	strlcpy(fhp->filename, namep, sizeof(fhp->filename));
 
-	dprintf(("path = %s!\ndirname = %s!\nbasename =%s!\n", fhp->path, fhp->dirpath, fhp->filename));
+	dprintf(("path = %s!\ndirname = %s!\nbasename =%s!\n", fhp->path,
+			fhp->dirpath, fhp->filename));
 
 	if (lstat(fhp->path, &sb) != 0) {
 		warn("cannot stat file %s", fhp->path);
@@ -924,10 +939,10 @@
 
 		/*
 		 * Target_path can be used to tell if user has supplied target_file
-		 * in input file-list, since symlinks are not traversed. User will have to
-		 * provide fullpaths for both symlink & target file if he wants integrity
-		 * checking for both. However, we will print warning messages in case
-		 * target file is not provided in user supplied input list.
+		 * in input file-list, since symlinks are not traversed. User will have
+		 * to provide fullpaths for both symlink & target file if he wants
+		 * integrity checking for both. However, we will print warning messages
+		 * in case target file is not provided in user supplied input list.
 		 *
 		 * Target referes to the file immediately pointed to by our symlink, not
 		 * the final target of a possible symlink chain.
@@ -941,13 +956,15 @@
 		sbuf[nchars] = '\0';
 
 		/* turn relative paths to absolute paths */
-		if (sbuf[0] != '/' && (flags & PEFS_UNMOUNTED) == 0 && (flags & PEFS_NOKEY) == 0)
-			snprintf(fhp->target_path, target_path_size, "%s/%s", fhp->dirpath, sbuf);
+		if (sbuf[0] != '/' && (flags & PEFS_UNMOUNTED) == 0 &&
+			(flags & PEFS_NOKEY) == 0)
+			snprintf(fhp->target_path, target_path_size, "%s/%s",
+				fhp->dirpath, sbuf);
 		else
 			strlcpy(fhp->target_path, sbuf, target_path_size);
 
 		/*
-		 * The only semantic check that is performed on target file is an attempt
+		 * The only semantic check that's performed on target file is an attempt
 		 * to lstat() the file, in order to make sure the file exists. This is
 		 * intentional since target file is allowed to reside on a different
 		 * filesystem or in the same filesystem, but not be a regular file or a
@@ -1047,17 +1064,19 @@
  * the checksum file.
  * A) For each file entry:
  * 		A1) semantic checks:
- * 			A1a) file should reside in pefs filesystem & file should be regular file.
+ * 			A1a) file should reside in pefs filesystem & file should be
+ * 				 regular file or symbolic link.
  * 			A1b) if symlink, acquire and save the absolute path of the symlink's
- * 				target. Try to lstat() the target but don't do anything else.
- * 			A1c) If hardlink, save a reference to this file entry in our rb tree.
- * 			rb-tree uses inodes as keys and is used in part C to print warnings.
+ * 				 target. Try to lstat() the target but don't do anything else.
+ * 			A1c) If hardlink, save a reference to this file entry in our
+ * 				 rb tree that uses i-node numbers as keys and is used in
+ * 				 part 'C' to print warnings.
  * 			A1d) Open and store file descriptors to file & parent_directory.
- * 		A2) the file_id is retrieved.
+ * 		A2) the file_id is retrieved. (filename MAC)
  * 		A3) list of checksums is computed for the file's 4k blocks.
  * 		A4) file entry is added to universal fh_head.
- * B) Print warnings for hardlinks if the number of links found in inputlist isn't
- * equal to the number of total inode links.
+ * B) Print warnings for hardlinks if the number of links found in inputlist
+ * isn't equal to the number of total inode links.
  * C) Hash tables are allocated.
  * D) Cuckoo insertion:
  * We try to populate our hash tables using the cuckoo algorithm. Should we fall
@@ -1181,7 +1200,8 @@
 		return (PEFS_ERR_IO);
 	}
 
-	bytes = write(fdout, &(cfhp->offset_to_hash_table), sizeof(cfhp->offset_to_hash_table));
+	bytes = write(fdout, &(cfhp->offset_to_hash_table),
+			sizeof(cfhp->offset_to_hash_table));
 	if (bytes != sizeof(cfhp->offset_to_hash_table)) {
 		warn("error writing to .pefs.checksum");
 		return (PEFS_ERR_IO);
@@ -1198,7 +1218,8 @@
 }
 
 static int
-pefs_write_file_header(int fdout, struct file_header *fhp, uint32_t *buckets_offset)
+pefs_write_file_header(int fdout, struct file_header *fhp,
+	uint32_t *buckets_offset)
 {
 	uint64_t file_id;
 	uint32_t nhashes, offset_to_checksums;
@@ -1213,7 +1234,8 @@
 	(*buckets_offset)+= sizeof(nhashes);
 
 	offset_to_checksums = htole32(fhp->offset_to_checksums);
-	bytes = pwrite(fdout, &offset_to_checksums, sizeof(offset_to_checksums), *buckets_offset);
+	bytes = pwrite(fdout, &offset_to_checksums,
+			sizeof(offset_to_checksums), *buckets_offset);
 	if (bytes != sizeof(offset_to_checksums)) {
 		warn("error writing to .pefs.checksum");
 		return (PEFS_ERR_IO);
@@ -1240,8 +1262,9 @@
 	fhp = bp->fhp;
 	if (fhp == NULL) {
 		/*
-		 * XXXgpf: empty files are not allowed so nhashes == 0 symbolizes an empty bucket.
-		 * perhaps a bitmap would be better? or we could steal a bit from some data member?
+		 * XXXgpf: empty files are not allowed so nhashes == 0 symbolizes
+		 * an empty bucket. perhaps a bitmap would be better? or we could
+		 * steal a bit from some data member?
 		 */
 		emptyfh.nhashes = 0;
 		emptyfh.file_id = 0;
@@ -1253,7 +1276,8 @@
 }
 
 static int
-pefs_write_hash(int fdout, struct checksum *csp, uint32_t *hashes_offset, uint8_t hash_len)
+pefs_write_hash(int fdout, struct checksum *csp, uint32_t *hashes_offset,
+	uint8_t hash_len)
 {
 	int bytes;
 
@@ -1271,14 +1295,15 @@
  * All data member writes are done separately so as to avoid alignment problems.
  * Writes are always in little endian byte order.
  *
- * First 16 bytes of .pefs.checksum are filled with .pefs.checksum's file header.
- * Right after this header lies the 'index' part of our database. This index is later
- * kept in kernel memory.
+ * First 16 bytes of .pefs.checksum are filled with .pefs.checksum's file
+ * header. Right after this header lies the 'index' part of our database.
+ * This index is later kept in kernel memory.
  *
  * Index:
- * Both hash tables of cuckoo algorithm are written to the file sequentially. The
- * first hash table corresponds to hash1() and the second hash table to hash2().
- * Each bucket (cell) of a hash table contains at most one entry(=file_header).
+ * Both hash tables of cuckoo algorithm are written to the file sequentially.
+ * The first hash table corresponds to hash1() and the second hash table to
+ * hash2(). Each bucket (cell) of a hash table contains at most one
+ * entry(=file_header).
  * The size of an entry is 16 bytes.
  *
  * hash table entries end at the following offset:
@@ -1287,11 +1312,12 @@
  * Checksums:
  * The last part of .pefs.checksum is filled with the actual checksums.
  * The offset where the first checksum starts is a 512 aligned address.
- * Each hash table file header entry contains an offset that points to the beginning
- * of a chain of checksums for that particular file's 4k blocks.
+ * Each hash table file header entry contains an offset that points to the
+ * beginning of a chain of checksums for that particular file's 4k blocks.
  */
 static int
-pefs_write_checksum_file(int fdout, struct checksum_file_header *cfhp, struct cuckoo_hash_table *chtp)
+pefs_write_checksum_file(int fdout, struct checksum_file_header *cfhp,
+	struct cuckoo_hash_table *chtp)
 {
 	struct bucket *bp;
 	struct checksum *csp;
@@ -1310,7 +1336,8 @@
 	hashes_offset = buckets_offset;
 	hashes_offset+= chtp->size * PEFS_FH_SIZE * 2;
 	if (hashes_offset % PEFS_HASH_BYTE_ALIGNMENT != 0)
-		hashes_offset+= PEFS_HASH_BYTE_ALIGNMENT - (hashes_offset % PEFS_HASH_BYTE_ALIGNMENT);
+		hashes_offset+= PEFS_HASH_BYTE_ALIGNMENT - (hashes_offset %
+			PEFS_HASH_BYTE_ALIGNMENT);
 
 	for (i = 0; i < chtp->size; i++) {
 		bp = &chtp->buckets1[i];
@@ -1323,7 +1350,8 @@
 		fhp = bp->fhp;
 		if (fhp != NULL) {
 			TAILQ_FOREACH(csp, &(fhp->checksums), checksum_entries) {
-				error = pefs_write_hash(fdout, csp, &hashes_offset, cfhp->hash_len);
+				error = pefs_write_hash(fdout, csp, &hashes_offset,
+					cfhp->hash_len);
 				if (error != 0)
 					return (error);
 			}
@@ -1341,7 +1369,8 @@
 		fhp = bp->fhp;
 		if (fhp != NULL) {
 			TAILQ_FOREACH(csp, &(fhp->checksums), checksum_entries) {
-				error = pefs_write_hash(fdout, csp, &hashes_offset, cfhp->hash_len);
+				error = pefs_write_hash(fdout, csp, &hashes_offset,
+					cfhp->hash_len);
 				if (error != 0)
 					return (error);
 			}
@@ -1352,8 +1381,8 @@
 }
 
 static void
-pefs_init_checksum_file_header(struct checksum_file_header *cfhp, const char *algo,
-		uint8_t hash_len, struct cuckoo_hash_table *chtp)
+pefs_init_checksum_file_header(struct checksum_file_header *cfhp,
+	const char *algo, uint8_t hash_len, struct cuckoo_hash_table *chtp)
 {
 	cfhp->hash_len = hash_len;
 	cfhp->hash_table_size = chtp->size;
@@ -1363,8 +1392,8 @@
 
 /*
  * If .pefs.checksum is created inside pefs mounted fs, then it will obtain an
- * encrypted filename & encrypted data, which is unacceptable. User should create
- * checksum file outside of filesystem and then copy it by hand.
+ * encrypted filename & encrypted data, which is unacceptable. User should
+ * create checksum file outside of filesystem and then copy it by hand.
  */
 static int
 pefs_open_checksum_file(int *fdp, char *fsroot, char *csm_path)
@@ -1403,12 +1432,14 @@
 }
 
 /*
- * An in memory database is created from entries in fpin. This database is later written
- * to file ".pefs.checksum" which is created under csm_path. algo is used as a cryptographic
- * hash function that produces checksums for 4k blocks of each file.
+ * An in memory database is created from entries in fpin. This database is
+ * later written to file ".pefs.checksum" which is created under csm_path.
+ * algo is used as a cryptographic hash function that produces checksums
+ * for 4k blocks of each file.
  */
 int
-pefs_create_checksum_file(FILE *fpin, char *fsroot, char *csm_path, const char *algo)
+pefs_create_checksum_file(FILE *fpin, char *fsroot, char *csm_path,
+	const char *algo)
 {
 	struct cuckoo_hash_table checksum_hash_table;
 	struct checksum_file_header cfh;
@@ -1480,7 +1511,8 @@
 		return (PEFS_ERR_IO);
 	}
 
-	bytes = read(fdin, &(cfhp->offset_to_hash_table), sizeof(cfhp->offset_to_hash_table));
+	bytes = read(fdin, &(cfhp->offset_to_hash_table),
+			sizeof(cfhp->offset_to_hash_table));
 	if (bytes != sizeof(cfhp->offset_to_hash_table)) {
 		warn("error reading from .pefs.checksum");
 		return (PEFS_ERR_IO);
@@ -1494,14 +1526,17 @@
 	cfhp->hash_table_size = le32toh(hash_table_size);
 
 	dprintf(("+++printing checksum file header info+++\n"));
-	dprintf(("version %X\nhash_len %d\nhash_algo %s\n", cfhp->version, cfhp->hash_len, cfhp->hash_algo));
-	dprintf(("offset to hash table %d\nhash table size %d\n", cfhp->offset_to_hash_table, cfhp->hash_table_size));
+	dprintf(("version %X\nhash_len %d\nhash_algo %s\n",
+		cfhp->version, cfhp->hash_len, cfhp->hash_algo));
+	dprintf(("offset to hash table %d\nhash table size %d\n",
+		cfhp->offset_to_hash_table, cfhp->hash_table_size));
 
 	return (0);
 }
 
 static int
-pefs_read_file_header(int fdin, struct file_header *fhp, uint32_t *buckets_offset)
+pefs_read_file_header(int fdin, struct file_header *fhp,
+	uint32_t *buckets_offset)
 {
 	uint64_t file_id;
 	uint32_t nhashes, offset_to_checksums;
@@ -1515,7 +1550,8 @@
 	fhp->nhashes = le32toh(nhashes);
 	(*buckets_offset)+= sizeof(nhashes);
 
-	bytes = pread(fdin, &offset_to_checksums, sizeof(offset_to_checksums), *buckets_offset);
+	bytes = pread(fdin, &offset_to_checksums, sizeof(offset_to_checksums),
+		*buckets_offset);
 	if (bytes != sizeof(offset_to_checksums)) {
 		warn("error reading from .pefs.checksum");
 		return (PEFS_ERR_IO);
@@ -1533,7 +1569,8 @@
 
 	//dprintf(("\nfile header offset = %d\n", *fh_offset));
 	//dprintf(("\n++priting file header info++\n"));
-	//dprintf(("nhashes %d\noffset_to_checksums %u\n", fhp->nhashes, fhp->offset_to_checksums));
+	//dprintf(("nhashes %d\noffset_to_checksums %u\n",
+			//fhp->nhashes, fhp->offset_to_checksums));
 	//dprintf(("file id %llu\n", fhp->file_id));
 
 	return (0);
@@ -1566,7 +1603,8 @@
 }
 
 static int
-pefs_read_hash(int fdin, struct checksum *csp, uint32_t *hashes_offset, uint8_t hash_len)
+pefs_read_hash(int fdin, struct checksum *csp, uint32_t *hashes_offset,
+	uint8_t hash_len)
 {
 	int bytes;
 
@@ -1591,7 +1629,8 @@
 
 /* Create in memory checksum database by reading .pefs.checksum file. */
 static int
-pefs_read_checksum_file(int fdin, struct checksum_file_header *cfhp, struct cuckoo_hash_table *chtp)
+pefs_read_checksum_file(int fdin, struct checksum_file_header *cfhp,
+	struct cuckoo_hash_table *chtp)
 {
 	struct bucket *bp;
 	struct checksum *csp;
@@ -1624,7 +1663,8 @@
 					return (PEFS_ERR_SYS);
 				}
 
-				error = pefs_read_hash(fdin, csp, &hashes_offset, cfhp->hash_len);
+				error = pefs_read_hash(fdin, csp, &hashes_offset,
+					cfhp->hash_len);
 				if (error != 0)
 					return (error);
 
@@ -1655,7 +1695,8 @@
 					return (PEFS_ERR_SYS);
 				}
 
-				error = pefs_read_hash(fdin, csp, &hashes_offset, cfhp->hash_len);
+				error = pefs_read_hash(fdin, csp, &hashes_offset,
+					cfhp->hash_len);
 				if (error != 0)
 					return (error);
 
@@ -1668,7 +1709,8 @@
 }
 
 static int
-pefs_compare_checksums(struct file_header *fhp, struct file_header *indexfhp, uint8_t hash_len)
+pefs_compare_checksums(struct file_header *fhp, struct file_header *indexfhp,
+	uint8_t hash_len)
 {
 	struct checksum *csp1, *csp2;
 	uint32_t i;
@@ -1678,7 +1720,8 @@
 
 	error = 0;
 	if (fhp->nhashes != indexfhp->nhashes) {
-		pefs_warn("number of hashes differ between on disk file and %s values for file %s: %u vs %u",
+		pefs_warn("number of hashes differ between on disk file and %s values "
+			"for file %s: %u vs %u",
 			PEFS_FILE_CHECKSUM, fhp->path, fhp->nhashes, indexfhp->nhashes);
 		error = PEFS_ERR_CHECKSUM;
 	}
@@ -1689,7 +1732,8 @@
 	while (csp1 != NULL && csp2 != NULL) {
 		cmp = memcmp(csp1->hash, csp2->hash, hash_len);
 		if (cmp != 0) {
-			pefs_warn("checksum no: %u differs between on disk file and %s values for file %s",
+			pefs_warn("checksum no: %u differs between on disk file and %s "
+				"values for file %s",
 				i, PEFS_FILE_CHECKSUM, fhp->path);
 			error = PEFS_ERR_CHECKSUM;
 		}
@@ -1702,12 +1746,13 @@
 }
 
 /*
- * Traverse the entire filesystem and for every regular file or symbolic link, look it up in
- * .pefs.checksum index and verify its checksums.
+ * Traverse the entire filesystem and for every regular file or symbolic link,
+ * look it up in .pefs.checksum index and verify its checksums.
  */
 static int
-pefs_traverse_fs(struct cuckoo_hash_table *chtp, const EVP_MD *md, uint8_t hash_len, DIR *dirp,
-	char *path, struct statfs *fsp, struct hardlink_head *hlc_headp, struct file_header_head *fh_headp,
+pefs_traverse_fs(struct cuckoo_hash_table *chtp, const EVP_MD *md,
+	uint8_t hash_len, DIR *dirp, char *path, struct statfs *fsp,
+	struct hardlink_head *hlc_headp, struct file_header_head *fh_headp,
 	int flags, int *checksum_error)
 {
 	char tmpath[MAXPATHLEN];
@@ -1721,8 +1766,10 @@
 		sdp = readdir(dirp);
 		if (sdp != NULL) {
 			/* XXXgpf: [TODO] Need to pay special attention to these files */
-			if (strcmp(sdp->d_name, "..") == 0 || strcmp(sdp->d_name, ".") == 0 ||
-				strcmp(sdp->d_name, ".pefs.db") == 0 || strcmp(sdp->d_name, ".pefs.conf") == 0 ||
+			if (strcmp(sdp->d_name, "..") == 0 ||
+				strcmp(sdp->d_name, ".") == 0 ||
+				strcmp(sdp->d_name, ".pefs.db") == 0 ||
+				strcmp(sdp->d_name, ".pefs.conf") == 0 ||
 				strcmp(sdp->d_name, ".pefs.checksum") == 0)
 				continue;
 
@@ -1737,7 +1784,7 @@
 					return (PEFS_ERR_SYS);
 				}
 				error = pefs_traverse_fs(chtp, md, hash_len, dirtmp, tmpath,
-							fsp, hlc_headp, fh_headp, flags, checksum_error);
+					fsp, hlc_headp, fh_headp, flags, checksum_error);
 				if (error != 0) {
 					closedir(dirp);
 					return (PEFS_ERR_SYS);
@@ -1745,10 +1792,11 @@
 				break;
 			/*
 			 * Look up the file and verify its checksums.
-			 * Total number of checksums should be the same and checksums should match.
+			 * Total number of checksums should be the same and checksums
+			 * should match.
 			 * Also, take notice of hardlinks & symlink warnings.
-			 * After the traversal is done, we must have found all of our entries in the
-			 * checksum file.
+			 * After the traversal is done, we must have found all of our
+			 * entries in the checksum file.
 			 */
 			/* FALLTHROUGH */
 			case DT_REG:
@@ -1847,7 +1895,8 @@
 		fhp = chtp->buckets1[i].fhp;
 		if (fhp != NULL)
 			if (fhp->found != 1) {
-				pefs_warn("file with file id %llu was not found in filesystem but exists in %s",
+				pefs_warn("file with file id %llu was not found in "
+					"filesystem but exists in %s",
 					fhp->file_id, PEFS_FILE_CHECKSUM);
 				error = PEFS_ERR_NOENT;
 			}
@@ -1857,7 +1906,8 @@
 		fhp = chtp->buckets2[i].fhp;
 		if (fhp != NULL)
 			if (fhp->found != 1) {
-				pefs_warn("file with file id %llu was not found in filesystem but exists in %s",
+				pefs_warn("file with file id %llu was not found in "
+					"filesystem but exists in %s",
 					fhp->file_id, PEFS_FILE_CHECKSUM);
 				error = PEFS_ERR_NOENT;
 			}
@@ -1924,7 +1974,8 @@
 		goto out;
 	}
 
-	error = pefs_traverse_fs(&cht, md, hash_len, dirp, fsroot, &fs, &hlc_head, &fh_head, flags, &checksum_error);
+	error = pefs_traverse_fs(&cht, md, hash_len, dirp, fsroot, &fs, &hlc_head,
+		&fh_head, flags, &checksum_error);
 	if (error != 0)
 		goto out;
 

Modified: soc2012/gpf/pefs_kmod/sbin/pefs/pefs_ctl.h
==============================================================================
--- soc2012/gpf/pefs_kmod/sbin/pefs/pefs_ctl.h	Tue Jul 10 17:32:52 2012	(r239244)
+++ soc2012/gpf/pefs_kmod/sbin/pefs/pefs_ctl.h	Tue Jul 10 18:20:20 2012	(r239245)
@@ -98,10 +98,12 @@
 int	pefs_key_decrypt(struct pefs_xkeyenc *xe,
 	    const struct pefs_xkey *xk_parent);
 uintmax_t	pefs_keyid_as_int(char *keyid);
-int pefs_create_checksum_file(FILE *fpin, char *fsroot, char *csm_path, const char *algo);
+int pefs_create_checksum_file(FILE *fpin, char *fsroot, char *csm_path,
+		const char *algo);
 int pefs_verify_checksum(int fdin, char *fsroot, int flags);
 
-int	pefs_name_pton(char const *src, size_t srclen, u_char *target, size_t targsize);
+int	pefs_name_pton(char const *src, size_t srclen, u_char *target,
+		size_t targsize);
 
 const char *	pefs_alg_name(struct pefs_xkey *xk);
 void	pefs_alg_list(FILE *stream);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120710182021.AFF931065670>