From d56bfe0c5ac80f369ae399ac78603b10f143e1c9 Mon Sep 17 00:00:00 2001 From: Jan Nikitenko Date: Fri, 28 Nov 2008 08:52:58 +0100 Subject: [PATCH] --- yaml --- r: 132566 b: refs/heads/master c: d7001198366bffce4506ba21b7b0fee2de194f73 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/filesystems/ext2.txt | 5 +-- trunk/Makefile | 7 +--- trunk/arch/mips/mm/dma-default.c | 2 +- trunk/fs/inode.c | 47 +++++------------------- trunk/fs/namespace.c | 11 ++---- trunk/include/linux/fs.h | 1 - trunk/include/linux/mount.h | 1 - trunk/mm/page-writeback.c | 4 +- 9 files changed, 20 insertions(+), 60 deletions(-) diff --git a/[refs] b/[refs] index fd8bfac88628..720cfb36b070 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1b5e62b42b55c509eea04c3c0f25e42c8b35b564 +refs/heads/master: d7001198366bffce4506ba21b7b0fee2de194f73 diff --git a/trunk/Documentation/filesystems/ext2.txt b/trunk/Documentation/filesystems/ext2.txt index e055acb6b2d4..23448551cabe 100644 --- a/trunk/Documentation/filesystems/ext2.txt +++ b/trunk/Documentation/filesystems/ext2.txt @@ -376,8 +376,7 @@ Implementations for: Windows 95/98/NT/2000 http://www.chrysocome.net/explore2fs Windows 95 (*) http://www.yipton.net/content.html#FSDEXT2 DOS client (*) ftp://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ -OS/2 (+) ftp://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ +OS/2 (*) ftp://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ RISC OS client http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/IscaFS/ -(*) no longer actively developed/supported (as of Apr 2001) -(+) no longer actively developed/supported (as of Mar 2009) +(*) no longer actively developed/supported (as of Mar 2009) diff --git a/trunk/Makefile b/trunk/Makefile index 1ab3ebfc9091..a2c2efe9e82e 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,8 +1,8 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 -EXTRAVERSION = -NAME = Temporary Tasmanian Devil +EXTRAVERSION = -rc8 +NAME = Erotic Pickled Herring # *DOCUMENTATION* # To see a list of typical targets execute "make help" @@ -569,9 +569,6 @@ KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) # disable invalid "can't wrap" optimzations for signed / pointers KBUILD_CFLAGS += $(call cc-option,-fwrapv) -# revert to pre-gcc-4.4 behaviour of .eh_frame -KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) - # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments # But warn user when we do so warn-assign = \ diff --git a/trunk/arch/mips/mm/dma-default.c b/trunk/arch/mips/mm/dma-default.c index 546e6977d4ff..bed56f1ac837 100644 --- a/trunk/arch/mips/mm/dma-default.c +++ b/trunk/arch/mips/mm/dma-default.c @@ -225,7 +225,7 @@ void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, if (!plat_device_is_coherent(dev) && direction != DMA_TO_DEVICE) { unsigned long addr; - addr = plat_dma_addr_to_phys(dma_address); + addr = dma_addr_to_virt(dma_address); dma_cache_wback_inv(addr, size); } diff --git a/trunk/fs/inode.c b/trunk/fs/inode.c index 6ac0cef6c5f5..826fb0b9d1c3 100644 --- a/trunk/fs/inode.c +++ b/trunk/fs/inode.c @@ -1290,40 +1290,6 @@ sector_t bmap(struct inode * inode, sector_t block) } EXPORT_SYMBOL(bmap); -/* - * With relative atime, only update atime if the previous atime is - * earlier than either the ctime or mtime or if at least a day has - * passed since the last atime update. - */ -static int relatime_need_update(struct vfsmount *mnt, struct inode *inode, - struct timespec now) -{ - - if (!(mnt->mnt_flags & MNT_RELATIME)) - return 1; - /* - * Is mtime younger than atime? If yes, update atime: - */ - if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0) - return 1; - /* - * Is ctime younger than atime? If yes, update atime: - */ - if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0) - return 1; - - /* - * Is the previous atime value older than a day? If yes, - * update atime: - */ - if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= 24*60*60) - return 1; - /* - * Good, we can skip the atime update: - */ - return 0; -} - /** * touch_atime - update the access time * @mnt: mount the inode is accessed on @@ -1351,12 +1317,17 @@ void touch_atime(struct vfsmount *mnt, struct dentry *dentry) goto out; if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode)) goto out; + if (mnt->mnt_flags & MNT_RELATIME) { + /* + * With relative atime, only update atime if the previous + * atime is earlier than either the ctime or mtime. + */ + if (timespec_compare(&inode->i_mtime, &inode->i_atime) < 0 && + timespec_compare(&inode->i_ctime, &inode->i_atime) < 0) + goto out; + } now = current_fs_time(inode->i_sb); - - if (!relatime_need_update(mnt, inode, now)) - goto out; - if (timespec_equal(&inode->i_atime, &now)) goto out; diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index f0e753097353..06f8e63f6cb1 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -780,7 +780,6 @@ static void show_mnt_opts(struct seq_file *m, struct vfsmount *mnt) { MNT_NOATIME, ",noatime" }, { MNT_NODIRATIME, ",nodiratime" }, { MNT_RELATIME, ",relatime" }, - { MNT_STRICTATIME, ",strictatime" }, { 0, NULL } }; const struct proc_fs_info *fs_infop; @@ -1920,9 +1919,6 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, if (data_page) ((char *)data_page)[PAGE_SIZE - 1] = 0; - /* Default to relatime */ - mnt_flags |= MNT_RELATIME; - /* Separate the per-mountpoint flags */ if (flags & MS_NOSUID) mnt_flags |= MNT_NOSUID; @@ -1934,14 +1930,13 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, mnt_flags |= MNT_NOATIME; if (flags & MS_NODIRATIME) mnt_flags |= MNT_NODIRATIME; - if (flags & MS_STRICTATIME) - mnt_flags &= ~(MNT_RELATIME | MNT_NOATIME); + if (flags & MS_RELATIME) + mnt_flags |= MNT_RELATIME; if (flags & MS_RDONLY) mnt_flags |= MNT_READONLY; flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | - MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT | - MS_STRICTATIME); + MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT); /* ... and get the mountpoint */ retval = kern_path(dir_name, LOOKUP_FOLLOW, &path); diff --git a/trunk/include/linux/fs.h b/trunk/include/linux/fs.h index 5bc81c4a98c1..92734c0012e6 100644 --- a/trunk/include/linux/fs.h +++ b/trunk/include/linux/fs.h @@ -141,7 +141,6 @@ struct inodes_stat_t { #define MS_RELATIME (1<<21) /* Update atime relative to mtime/ctime. */ #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ #define MS_I_VERSION (1<<23) /* Update inode I_version field */ -#define MS_STRICTATIME (1<<24) /* Always perform atime updates */ #define MS_ACTIVE (1<<30) #define MS_NOUSER (1<<31) diff --git a/trunk/include/linux/mount.h b/trunk/include/linux/mount.h index 51f55f903aff..cab2a85e2ee8 100644 --- a/trunk/include/linux/mount.h +++ b/trunk/include/linux/mount.h @@ -27,7 +27,6 @@ struct mnt_namespace; #define MNT_NODIRATIME 0x10 #define MNT_RELATIME 0x20 #define MNT_READONLY 0x40 /* does the user want this to be r/o? */ -#define MNT_STRICTATIME 0x80 #define MNT_SHRINKABLE 0x100 #define MNT_IMBALANCED_WRITE_COUNT 0x200 /* just for debugging */ diff --git a/trunk/mm/page-writeback.c b/trunk/mm/page-writeback.c index 40ca7cdb653e..74dc57c74349 100644 --- a/trunk/mm/page-writeback.c +++ b/trunk/mm/page-writeback.c @@ -66,7 +66,7 @@ static inline long sync_writeback_pages(void) /* * Start background writeback (via pdflush) at this percentage */ -int dirty_background_ratio = 10; +int dirty_background_ratio = 5; /* * dirty_background_bytes starts at 0 (disabled) so that it is a function of @@ -83,7 +83,7 @@ int vm_highmem_is_dirtyable; /* * The generator of dirty data starts writeback at this percentage */ -int vm_dirty_ratio = 20; +int vm_dirty_ratio = 10; /* * vm_dirty_bytes starts at 0 (disabled) so that it is a function of