[folded-merged] hfsplus-implement-attributes-files-header-node-initialization-code-v2.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Subject: [folded-merged] hfsplus-implement-attributes-files-header-node-initialization-code-v2.patch removed from -mm tree
To: slava@xxxxxxxxxxx,hch@xxxxxxxxxxxxx,htl10@xxxxxxxxxxxxxxxxxxxxx,viro@xxxxxxxxxxxxxxxxxx,mm-commits@xxxxxxxxxxxxxxx
From: akpm@xxxxxxxxxxxxxxxxxxxx
Date: Tue, 12 Nov 2013 14:44:35 -0800


The patch titled
     Subject: hfsplus-implement-attributes-files-header-node-initialization-code-v2
has been removed from the -mm tree.  Its filename was
     hfsplus-implement-attributes-files-header-node-initialization-code-v2.patch

This patch was dropped because it was folded into hfsplus-implement-attributes-files-header-node-initialization-code.patch

------------------------------------------------------
From: Vyacheslav Dubeyko <slava@xxxxxxxxxxx>
Subject: hfsplus-implement-attributes-files-header-node-initialization-code-v2

* SETOFFSET macro was removed (Andrew Morton).
* Record offsets logic was reworked in hfsplus_init_header_node() (Al Viro).
* AttributesFile's header node's bitmap is initialized by memset() (Al Viro).
* Logic of checking attributes tree state before AttributesFile
  creation was reworked for HFSPLUS_CREATING_ATTR_TREE case (Andrew Morton).
* Setting error code was added after read_mapping_page()
  call in hfsplus_create_attributes_file() method (Andrew Morton).

Signed-off-by: Vyacheslav Dubeyko <slava@xxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 fs/hfsplus/xattr.c |   34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff -puN fs/hfsplus/xattr.c~hfsplus-implement-attributes-files-header-node-initialization-code-v2 fs/hfsplus/xattr.c
--- a/fs/hfsplus/xattr.c~hfsplus-implement-attributes-files-header-node-initialization-code-v2
+++ a/fs/hfsplus/xattr.c
@@ -127,9 +127,6 @@ static int can_set_xattr(struct inode *i
 	return 0;
 }
 
-#define SETOFFSET(buf, ndsiz, offset, rec) \
-	(*(u16 *)((u8 *)(buf) + (ndsiz) + (-2 * (rec))) = (cpu_to_be16(offset)))
-
 static void hfsplus_init_header_node(struct inode *attr_file,
 					u32 clump_size,
 					char *buf, size_t node_size)
@@ -137,18 +134,23 @@ static void hfsplus_init_header_node(str
 	struct hfs_bnode_desc *desc;
 	struct hfs_btree_header_rec *head;
 	u16 offset;
+	__be16 *rec_offsets;
 	u32 hdr_node_map_rec_bits;
 	char *bmp;
-	u32 temp;
+	u32 used_nodes;
+	u32 used_bmp_bytes;
 
 	hfs_dbg(ATTR_MOD, "init_hdr_attr_file: clump %u, node_size %zu\n",
 				clump_size, node_size);
 
+	/* The end of the node contains list of record offsets */
+	rec_offsets = (__be16 *)(buf + node_size);
+
 	desc = (struct hfs_bnode_desc *)buf;
 	desc->type = HFS_NODE_HEADER;
 	desc->num_recs = cpu_to_be16(HFSPLUS_BTREE_HDR_NODE_RECS_COUNT);
 	offset = sizeof(struct hfs_bnode_desc);
-	SETOFFSET(buf, node_size, offset, 1);
+	*--rec_offsets = cpu_to_be16(offset);
 
 	head = (struct hfs_btree_header_rec *)(buf + offset);
 	head->node_size = cpu_to_be16(node_size);
@@ -158,10 +160,9 @@ static void hfsplus_init_header_node(str
 	head->attributes |= cpu_to_be32(HFS_TREE_BIGKEYS | HFS_TREE_VARIDXKEYS);
 	head->max_key_len = cpu_to_be16(HFSPLUS_ATTR_KEYLEN - sizeof(u16));
 	offset += sizeof(struct hfs_btree_header_rec);
-	SETOFFSET(buf, node_size, offset, 2);
-
+	*--rec_offsets = cpu_to_be16(offset);
 	offset += HFSPLUS_BTREE_HDR_USER_BYTES;
-	SETOFFSET(buf, node_size, offset, 3);
+	*--rec_offsets = cpu_to_be16(offset);
 
 	hdr_node_map_rec_bits = 8 * (node_size - offset - (4 * sizeof(u16)));
 	if (be32_to_cpu(head->node_count) > hdr_node_map_rec_bits) {
@@ -178,16 +179,17 @@ static void hfsplus_init_header_node(str
 	}
 
 	bmp = buf + offset;
-	temp = be32_to_cpu(head->node_count) - be32_to_cpu(head->free_nodes);
-
-	/* Working a byte at a time is endian safe */
-	while (temp >= 8) {
-		*bmp = 0xFF; temp -= 8; bmp++;
+	used_nodes =
+		be32_to_cpu(head->node_count) - be32_to_cpu(head->free_nodes);
+	used_bmp_bytes = used_nodes / 8;
+	if (used_bmp_bytes) {
+		memset(bmp, 0xFF, used_bmp_bytes);
+		bmp += used_bmp_bytes;
+		used_nodes %= 8;
 	}
-	*bmp = ~(0xFF >> temp);
+	*bmp = ~(0xFF >> used_nodes);
 	offset += hdr_node_map_rec_bits / 8;
-
-	SETOFFSET(buf, node_size, offset, 4);
+	*--rec_offsets = cpu_to_be16(offset);
 }
 
 int __hfsplus_setxattr(struct inode *inode, const char *name,
_

Patches currently in -mm which might be from slava@xxxxxxxxxxx are

fs-hfs-btreeh-remove-duplicate-defines.patch
hfsplus-add-metadata-files-clump-size-calculation-functionality.patch
hfsplus-implement-attributes-files-header-node-initialization-code.patch
hfsplus-implement-attributes-file-creation-functionality.patch
hfsplus-implement-attributes-file-creation-functionality-v2.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux