diff options
| -rw-r--r-- | fs/udf/ialloc.c | 1 | ||||
| -rw-r--r-- | fs/udf/inode.c | 4 | ||||
| -rw-r--r-- | fs/udf/udf_i.h | 1 | 
3 files changed, 6 insertions, 0 deletions
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index 05ab48195be..7e5aae4bf46 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c @@ -116,6 +116,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err)  	iinfo->i_lenEAttr = 0;  	iinfo->i_lenAlloc = 0;  	iinfo->i_use = 0; +	iinfo->i_checkpoint = 1;  	if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB))  		iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB;  	else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 7699df7b319..91c6f2311f3 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -1358,6 +1358,7 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)  		iinfo->i_unique = le64_to_cpu(fe->uniqueID);  		iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr);  		iinfo->i_lenAlloc = le32_to_cpu(fe->lengthAllocDescs); +		iinfo->i_checkpoint = le32_to_cpu(fe->checkpoint);  		offset = sizeof(struct fileEntry) + iinfo->i_lenEAttr;  	} else {  		inode->i_blocks = le64_to_cpu(efe->logicalBlocksRecorded) << @@ -1379,6 +1380,7 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)  		iinfo->i_unique = le64_to_cpu(efe->uniqueID);  		iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr);  		iinfo->i_lenAlloc = le32_to_cpu(efe->lengthAllocDescs); +		iinfo->i_checkpoint = le32_to_cpu(efe->checkpoint);  		offset = sizeof(struct extendedFileEntry) +  							iinfo->i_lenEAttr;  	} @@ -1607,6 +1609,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)  		fe->uniqueID = cpu_to_le64(iinfo->i_unique);  		fe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr);  		fe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); +		fe->checkpoint = cpu_to_le32(iinfo->i_checkpoint);  		fe->descTag.tagIdent = cpu_to_le16(TAG_IDENT_FE);  		crclen = sizeof(struct fileEntry);  	} else { @@ -1646,6 +1649,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)  		efe->uniqueID = cpu_to_le64(iinfo->i_unique);  		efe->lengthExtendedAttr = cpu_to_le32(iinfo->i_lenEAttr);  		efe->lengthAllocDescs = cpu_to_le32(iinfo->i_lenAlloc); +		efe->checkpoint = cpu_to_le32(iinfo->i_checkpoint);  		efe->descTag.tagIdent = cpu_to_le16(TAG_IDENT_EFE);  		crclen = sizeof(struct extendedFileEntry);  	} diff --git a/fs/udf/udf_i.h b/fs/udf/udf_i.h index d1bd31ea724..bb8309dcd5c 100644 --- a/fs/udf/udf_i.h +++ b/fs/udf/udf_i.h @@ -23,6 +23,7 @@ struct udf_inode_info {  	__u64			i_lenExtents;  	__u32			i_next_alloc_block;  	__u32			i_next_alloc_goal; +	__u32			i_checkpoint;  	unsigned		i_alloc_type : 3;  	unsigned		i_efe : 1;	/* extendedFileEntry */  	unsigned		i_use : 1;	/* unallocSpaceEntry */  |