⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux-2.6.9-ext3-sub-second-timestamp.patch

📁 非常经典的一个分布式系统
💻 PATCH
📖 第 1 页 / 共 2 页
字号:
Index: linux-2.6.10/drivers/char/qtronix.c===================================================================--- linux-2.6.10.orig/drivers/char/qtronix.c	2004-12-24 14:35:50.000000000 -0700+++ linux-2.6.10/drivers/char/qtronix.c	2006-01-03 16:16:52.000000000 -0700@@ -537,7 +537,7 @@ 		i--; 	} 	if (count-i) {-		file->f_dentry->d_inode->i_atime = CURRENT_TIME;+		file->f_dentry->d_inode->i_atime = current_fs_time(inode->i_sb); 		return count-i; 	} 	if (signal_pending(current))Index: linux-2.6.10/drivers/char/random.c===================================================================--- linux-2.6.10.orig/drivers/char/random.c	2005-04-06 09:38:33.000000000 -0600+++ linux-2.6.10/drivers/char/random.c	2006-01-03 16:16:52.000000000 -0700@@ -1743,8 +1743,9 @@ 	if (p == buffer) { 		return (ssize_t)ret; 	} else {-		file->f_dentry->d_inode->i_mtime = CURRENT_TIME;-		mark_inode_dirty(file->f_dentry->d_inode);+		struct inode *inode = file->f_dentry->d_inode;+	        inode->i_mtime = current_fs_time(inode->i_sb);+		mark_inode_dirty(inode); 		return (ssize_t)(p - buffer); 	} }Index: linux-2.6.10/drivers/char/sonypi.c===================================================================--- linux-2.6.10.orig/drivers/char/sonypi.c	2004-12-24 14:35:23.000000000 -0700+++ linux-2.6.10/drivers/char/sonypi.c	2006-01-03 16:18:31.000000000 -0700@@ -537,7 +537,8 @@ 	}  	if (ret > 0)-		file->f_dentry->d_inode->i_atime = CURRENT_TIME;+		struct inode *inode = file->f_dentry->d_inode;+		inode->i_atime = current_fs_time(inode->i_sb);  	return ret; }Index: linux-2.6.10/drivers/char/tty_io.c===================================================================--- linux-2.6.10.orig/drivers/char/tty_io.c	2005-04-06 09:38:33.000000000 -0600+++ linux-2.6.10/drivers/char/tty_io.c	2006-01-03 16:16:52.000000000 -0700@@ -1018,7 +1018,7 @@ 	tty_ldisc_deref(ld); 	unlock_kernel(); 	if (i > 0)-		inode->i_atime = CURRENT_TIME;+		inode->i_atime = current_fs_time(inode->i_sb); 	return i; } @@ -1095,7 +1095,8 @@ 		cond_resched(); 	} 	if (written) {-		file->f_dentry->d_inode->i_mtime = CURRENT_TIME;+		struct inode *inode = file->f_dentry->d_inode;+		inode->i_mtime = current_fs_time(inode->i_sb); 		ret = written; 	} 	up(&tty->atomic_write);Index: linux-2.6.10/fs/attr.c===================================================================--- linux-2.6.10.orig/fs/attr.c	2004-12-24 14:34:00.000000000 -0700+++ linux-2.6.10/fs/attr.c	2006-01-03 16:16:52.000000000 -0700@@ -14,6 +14,7 @@ #include <linux/fcntl.h> #include <linux/quotaops.h> #include <linux/security.h>+#include <linux/time.h>  /* Taken over from the old code... */ @@ -87,11 +88,14 @@ 	if (ia_valid & ATTR_GID) 		inode->i_gid = attr->ia_gid; 	if (ia_valid & ATTR_ATIME)-		inode->i_atime = attr->ia_atime;+		inode->i_atime = timespec_trunc(attr->ia_atime,+						get_sb_time_gran(inode->i_sb)); 	if (ia_valid & ATTR_MTIME)-		inode->i_mtime = attr->ia_mtime;+		inode->i_mtime = timespec_trunc(attr->ia_mtime,+						get_sb_time_gran(inode->i_sb)); 	if (ia_valid & ATTR_CTIME)-		inode->i_ctime = attr->ia_ctime;+		inode->i_ctime = timespec_trunc(attr->ia_ctime,+						get_sb_time_gran(inode->i_sb)); 	if (ia_valid & ATTR_MODE) { 		umode_t mode = attr->ia_mode; @@ -131,14 +135,17 @@ int notify_change(struct dentry * dentry, struct iattr * attr) { 	struct inode *inode = dentry->d_inode;-	mode_t mode = inode->i_mode;+	mode_t mode; 	int error;-	struct timespec now = CURRENT_TIME;+	struct timespec now; 	unsigned int ia_valid = attr->ia_valid;  	if (!inode) 		BUG(); +	mode = inode->i_mode;+	now = current_fs_time(inode->i_sb);+ 	attr->ia_ctime = now; 	if (!(ia_valid & ATTR_ATIME_SET)) 		attr->ia_atime = now;Index: linux-2.6.10/fs/bad_inode.c===================================================================--- linux-2.6.10.orig/fs/bad_inode.c	2004-12-24 14:35:50.000000000 -0700+++ linux-2.6.10/fs/bad_inode.c	2006-01-03 16:16:52.000000000 -0700@@ -105,7 +105,8 @@ 	remove_inode_hash(inode);  	inode->i_mode = S_IFREG;-	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;+	inode->i_atime = inode->i_mtime = inode->i_ctime = +		current_fs_time(inode->i_sb); 	inode->i_op = &bad_inode_ops;	 	inode->i_fop = &bad_file_ops;	 }Index: linux-2.6.10/fs/binfmt_misc.c===================================================================--- linux-2.6.10.orig/fs/binfmt_misc.c	2004-12-24 14:34:31.000000000 -0700+++ linux-2.6.10/fs/binfmt_misc.c	2006-01-03 16:16:52.000000000 -0700@@ -509,7 +509,8 @@ 		inode->i_gid = 0; 		inode->i_blksize = PAGE_CACHE_SIZE; 		inode->i_blocks = 0;-		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;+		inode->i_atime = inode->i_mtime = inode->i_ctime =+			current_fs_time(inode->i_sb); 	} 	return inode; }Index: linux-2.6.10/fs/ext2/dir.c===================================================================--- linux-2.6.10.orig/fs/ext2/dir.c	2004-12-24 14:34:58.000000000 -0700+++ linux-2.6.10/fs/ext2/dir.c	2006-01-03 16:16:52.000000000 -0700@@ -426,7 +426,7 @@ 	ext2_set_de_type (de, inode); 	err = ext2_commit_chunk(page, from, to); 	ext2_put_page(page);-	dir->i_mtime = dir->i_ctime = CURRENT_TIME;+	dir->i_mtime = dir->i_ctime = CURRENT_TIME_SEC; 	EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL; 	mark_inode_dirty(dir); }@@ -516,7 +516,7 @@ 	de->inode = cpu_to_le32(inode->i_ino); 	ext2_set_de_type (de, inode); 	err = ext2_commit_chunk(page, from, to);-	dir->i_mtime = dir->i_ctime = CURRENT_TIME;+	dir->i_mtime = dir->i_ctime = CURRENT_TIME_SEC; 	EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL; 	mark_inode_dirty(dir); 	/* OFFSET_CACHE */@@ -564,7 +564,7 @@ 		pde->rec_len = cpu_to_le16(to-from); 	dir->inode = 0; 	err = ext2_commit_chunk(page, from, to);-	inode->i_ctime = inode->i_mtime = CURRENT_TIME;+	inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC; 	EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL; 	mark_inode_dirty(inode); out:Index: linux-2.6.10/fs/ext2/ialloc.c===================================================================--- linux-2.6.10.orig/fs/ext2/ialloc.c	2004-12-24 14:34:47.000000000 -0700+++ linux-2.6.10/fs/ext2/ialloc.c	2006-01-03 16:16:52.000000000 -0700@@ -577,7 +577,7 @@ 	inode->i_ino = ino; 	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size (for stat), not the fs block size */ 	inode->i_blocks = 0;-	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;+	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; 	memset(ei->i_data, 0, sizeof(ei->i_data)); 	ei->i_flags = EXT2_I(dir)->i_flags & ~EXT2_BTREE_FL; 	if (S_ISLNK(mode))Index: linux-2.6.10/fs/ext2/inode.c===================================================================--- linux-2.6.10.orig/fs/ext2/inode.c	2004-12-24 14:33:51.000000000 -0700+++ linux-2.6.10/fs/ext2/inode.c	2006-01-03 16:16:52.000000000 -0700@@ -493,7 +493,7 @@  	/* We are done with atomic stuff, now do the rest of housekeeping */ -	inode->i_ctime = CURRENT_TIME;+	inode->i_ctime = CURRENT_TIME_SEC;  	/* had we spliced it onto indirect block? */ 	if (where->bh)@@ -953,7 +953,7 @@ 		case EXT2_TIND_BLOCK: 			; 	}-	inode->i_mtime = inode->i_ctime = CURRENT_TIME;+	inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC; 	if (inode_needs_sync(inode)) { 		sync_mapping_buffers(inode->i_mapping); 		ext2_sync_inode (inode);Index: linux-2.6.10/fs/ext2/ioctl.c===================================================================--- linux-2.6.10.orig/fs/ext2/ioctl.c	2004-12-24 14:35:49.000000000 -0700+++ linux-2.6.10/fs/ext2/ioctl.c	2006-01-03 16:16:52.000000000 -0700@@ -59,7 +59,7 @@ 		ei->i_flags = flags;  		ext2_set_inode_flags(inode);-		inode->i_ctime = CURRENT_TIME;+		inode->i_ctime = CURRENT_TIME_SEC; 		mark_inode_dirty(inode); 		return 0; 	}@@ -72,7 +72,7 @@ 			return -EROFS; 		if (get_user(inode->i_generation, (int __user *) arg)) 			return -EFAULT;	-		inode->i_ctime = CURRENT_TIME;+		inode->i_ctime = CURRENT_TIME_SEC; 		mark_inode_dirty(inode); 		return 0; 	default:Index: linux-2.6.10/fs/ext2/namei.c===================================================================--- linux-2.6.10.orig/fs/ext2/namei.c	2004-12-24 14:35:25.000000000 -0700+++ linux-2.6.10/fs/ext2/namei.c	2006-01-03 16:16:52.000000000 -0700@@ -211,7 +211,7 @@ 	if (inode->i_nlink >= EXT2_LINK_MAX) 		return -EMLINK; -	inode->i_ctime = CURRENT_TIME;+	inode->i_ctime = CURRENT_TIME_SEC; 	ext2_inc_count(inode); 	atomic_inc(&inode->i_count); @@ -337,7 +337,7 @@ 			goto out_dir; 		ext2_inc_count(old_inode); 		ext2_set_link(new_dir, new_de, new_page, old_inode);-		new_inode->i_ctime = CURRENT_TIME;+		new_inode->i_ctime = CURRENT_TIME_SEC; 		if (dir_de) 			new_inode->i_nlink--; 		ext2_dec_count(new_inode);@@ -362,7 +362,7 @@  	 * rename. 	 * ext2_dec_count() will mark the inode dirty. 	 */-	old_inode->i_ctime = CURRENT_TIME;+	old_inode->i_ctime = CURRENT_TIME_SEC;  	ext2_delete_entry (old_de, old_page); 	ext2_dec_count(old_inode);Index: linux-2.6.10/fs/ext2/super.c===================================================================--- linux-2.6.10.orig/fs/ext2/super.c	2004-12-24 14:35:01.000000000 -0700+++ linux-2.6.10/fs/ext2/super.c	2006-01-03 16:19:06.000000000 -0700@@ -595,7 +595,7 @@ 	es = (struct ext2_super_block *) (((char *)bh->b_data) + offset); 	sbi->s_es = es; 	sb->s_magic = le16_to_cpu(es->s_magic);-	sb->s_flags |= MS_ONE_SECOND;+	set_sb_time_gran(sb, 1000000000U);  	if (sb->s_magic != EXT2_SUPER_MAGIC) 		goto cantfind_ext2;Index: linux-2.6.10/fs/ext2/xattr.c===================================================================--- linux-2.6.10.orig/fs/ext2/xattr.c	2005-04-06 09:38:35.000000000 -0600+++ linux-2.6.10/fs/ext2/xattr.c	2006-01-03 16:16:52.000000000 -0700@@ -702,7 +702,7 @@  	/* Update the inode. */ 	EXT2_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0;-	inode->i_ctime = CURRENT_TIME;+	inode->i_ctime = CURRENT_TIME_SEC; 	if (IS_SYNC(inode)) { 		error = ext2_sync_inode (inode); 		if (error)Index: linux-2.6.10/fs/ext3/ialloc.c===================================================================--- linux-2.6.10.orig/fs/ext3/ialloc.c	2004-12-24 14:34:45.000000000 -0700+++ linux-2.6.10/fs/ext3/ialloc.c	2006-01-03 16:16:52.000000000 -0700@@ -558,7 +558,7 @@ 	/* This is the optimal IO size (for stat), not the fs block size */ 	inode->i_blksize = PAGE_SIZE; 	inode->i_blocks = 0;-	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;+	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;  	memset(ei->i_data, 0, sizeof(ei->i_data)); 	ei->i_next_alloc_block = 0;Index: linux-2.6.10/fs/ext3/inode.c===================================================================--- linux-2.6.10.orig/fs/ext3/inode.c	2005-04-06 09:38:35.000000000 -0600+++ linux-2.6.10/fs/ext3/inode.c	2006-01-03 16:16:52.000000000 -0700@@ -626,7 +626,7 @@  	/* We are done with atomic stuff, now do the rest of housekeeping */ -	inode->i_ctime = CURRENT_TIME;+	inode->i_ctime = CURRENT_TIME_SEC; 	ext3_mark_inode_dirty(handle, inode);  	/* had we spliced it onto indirect block? */@@ -2199,7 +2199,7 @@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -