SOURCES (LINUX_2_6): linux-2.6-suspend2.patch - up to TuxOnIce 3.0...
arekm
arekm at pld-linux.org
Sun Jan 20 11:44:44 CET 2008
Author: arekm Date: Sun Jan 20 10:44:44 2008 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- up to TuxOnIce 3.0-rc4 for kernel 2.6.24-rc8
---- Files affected:
SOURCES:
linux-2.6-suspend2.patch (1.1.2.2.2.4 -> 1.1.2.2.2.5)
---- Diffs:
================================================================
Index: SOURCES/linux-2.6-suspend2.patch
diff -u SOURCES/linux-2.6-suspend2.patch:1.1.2.2.2.4 SOURCES/linux-2.6-suspend2.patch:1.1.2.2.2.5
--- SOURCES/linux-2.6-suspend2.patch:1.1.2.2.2.4 Fri Oct 12 15:15:21 2007
+++ SOURCES/linux-2.6-suspend2.patch Sun Jan 20 11:44:39 2008
@@ -475,7 +475,7 @@
+
diff --git a/Documentation/power/tuxonice.txt b/Documentation/power/tuxonice.txt
new file mode 100644
-index 0000000..b97fe92
+index 0000000..aa2a486
--- /dev/null
+++ b/Documentation/power/tuxonice.txt
@@ -0,0 +1,709 @@
@@ -715,7 +715,7 @@
+
+ A suspend cycle can be started directly by doing:
+
-+ echo > /sys/power/tuxonice/do_resume
++ echo > /sys/power/tuxonice/do_hibernate
+
+ In practice, though, you'll probably want to use the hibernate script
+ to unload modules, configure the kernel the way you like it and so on.
@@ -1189,10 +1189,10 @@
+ testing. His efforts have contributed as much to TuxOnIce as any of the
+ names above.
diff --git a/MAINTAINERS b/MAINTAINERS
-index 9a91d9e..f646849 100644
+index 2340cfb..3472ff1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -3721,6 +3721,13 @@ P: Maciej W. Rozycki
+@@ -3793,6 +3793,13 @@ P: Maciej W. Rozycki
M: macro at linux-mips.org
S: Maintained
@@ -1206,28 +1206,28 @@
U14-34F SCSI DRIVER
P: Dario Ballabio
M: ballabio_dario at emc.com
-diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
-index fcb38e7..44cc8c3 100644
---- a/arch/i386/mm/fault.c
-+++ b/arch/i386/mm/fault.c
+diff --git a/arch/x86/mm/fault_32.c b/arch/x86/mm/fault_32.c
+index a2273d4..fa69b1d 100644
+--- a/arch/x86/mm/fault_32.c
++++ b/arch/x86/mm/fault_32.c
@@ -25,6 +25,7 @@
#include <linux/kprobes.h>
#include <linux/uaccess.h>
#include <linux/kdebug.h>
+#include <linux/suspend.h>
+ #include <linux/kprobes.h>
#include <asm/system.h>
- #include <asm/desc.h>
-@@ -34,6 +35,9 @@ extern void die(const char *,struct pt_regs *,long);
+@@ -33,6 +34,9 @@
- static ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain);
+ extern void die(const char *,struct pt_regs *,long);
-+int toi_faulted = 0;
++int toi_faulted;
+EXPORT_SYMBOL(toi_faulted);
+
- int register_page_fault_notifier(struct notifier_block *nb)
+ #ifdef CONFIG_KPROBES
+ static inline int notify_page_fault(struct pt_regs *regs)
{
- vmalloc_sync_all();
@@ -315,6 +319,22 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs,
si_code = SEGV_MAPERR;
@@ -1251,10 +1251,10 @@
/*
* We fault-in kernel-space virtual memory on-demand. The
* 'reference' page table is init_mm.pgd.
-diff --git a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c
-index 4241a74..6b45150 100644
---- a/arch/i386/mm/pageattr.c
-+++ b/arch/i386/mm/pageattr.c
+diff --git a/arch/x86/mm/pageattr_32.c b/arch/x86/mm/pageattr_32.c
+index 260073c..ff6d57e 100644
+--- a/arch/x86/mm/pageattr_32.c
++++ b/arch/x86/mm/pageattr_32.c
@@ -272,6 +272,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable)
*/
__flush_tlb_all();
@@ -1264,10 +1264,10 @@
EXPORT_SYMBOL(change_page_attr);
diff --git a/crypto/Kconfig b/crypto/Kconfig
-index 3d1a1e2..31ff638 100644
+index 083d2e1..e066d63 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
-@@ -427,6 +427,14 @@ config CRYPTO_DEFLATE
+@@ -453,6 +453,14 @@ config CRYPTO_DEFLATE
You will most probably want this if using IPSec.
@@ -1283,54 +1283,54 @@
tristate "Michael MIC keyed digest algorithm"
select CRYPTO_ALGAPI
diff --git a/crypto/Makefile b/crypto/Makefile
-index 0cf17f1..d0f6177 100644
+index 43c2a0d..d58f128 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
-@@ -48,6 +48,7 @@ obj-$(CONFIG_CRYPTO_ANUBIS) += anubis.o
+@@ -51,6 +51,7 @@ obj-$(CONFIG_CRYPTO_SEED) += seed.o
obj-$(CONFIG_CRYPTO_DEFLATE) += deflate.o
obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o
obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o
+obj-$(CONFIG_CRYPTO_LZF) += lzf.o
+ obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o
obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
-
diff --git a/crypto/lzf.c b/crypto/lzf.c
new file mode 100644
-index 0000000..aa97700
+index 0000000..a472649
--- /dev/null
+++ b/crypto/lzf.c
-@@ -0,0 +1,325 @@
-+/*
+@@ -0,0 +1,327 @@
++/*
+ * Cryptoapi LZF compression module.
+ *
+ * Copyright (c) 2004-2005 Nigel Cunningham <nigel at tuxonice net>
+ *
+ * based on the deflate.c file:
-+ *
++ *
+ * Copyright (c) 2003 James Morris <jmorris at intercode.com.au>
-+ *
++ *
+ * and upon the LZF compression module donated to the TuxOnIce project with
+ * the following copyright:
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
-+ * Software Foundation; either version 2 of the License, or (at your option)
++ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ * Copyright (c) 2000-2003 Marc Alexander Lehmann <pcg at goof.com>
-+ *
++ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
-+ *
++ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
-+ *
++ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
-+ *
++ *
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
-+ *
++ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+ * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
@@ -1375,7 +1375,7 @@
+ * For a low-memory configuration, use hlog == 13;
+ * For best compression, use 15 or 16.
+ */
-+static const int hlog = 14;
++static const int hlog = 13;
+
+/*
+ * don't play with this unless you benchmark!
@@ -1468,7 +1468,8 @@
+ ref = *hslot;
+ *hslot = ip;
+
-+ if ((off = ip - ref - 1) < max_off
++ off = ip - ref - 1;
++ if (off < max_off
+ && ip + 4 < in_end && ref > in_data
+ && *(u16 *) ref == *(u16 *) ip && ref[2] == ip[2]
+ ) {
@@ -1489,9 +1490,9 @@
+ if (lit) {
+ *op++ = lit - 1;
+ lit = -lit;
-+ do
++ do {
+ *op++ = ip[lit];
-+ while (++lit);
++ } while (++lit);
+ }
+
+ len -= 2;
@@ -1541,9 +1542,9 @@
+
+ *op++ = lit - 1;
+ lit = -lit;
-+ do
++ do {
+ *op++ = ip[lit];
-+ while (++lit);
++ } while (++lit);
+ }
+
+ *out_len = op - out_data;
@@ -1562,7 +1563,8 @@
+ do {
+ unsigned int ctrl = *ip++;
+
-+ if (ctrl < (1 << 5)) { /* literal run */
++ if (ctrl < (1 << 5)) {
++ /* literal run */
+ ctrl++;
+
+ if (op + ctrl > out_end)
@@ -1585,9 +1587,9 @@
+ if (op + len > out_end || ref < (u8 *) dst)
+ return 0;
+
-+ do
++ do {
+ *op++ = *ref++;
-+ while (--len);
++ } while (--len);
+ }
+ }
+ while (op < out_end && ip < in_end);
@@ -1626,7 +1628,7 @@
+MODULE_DESCRIPTION("LZF Compression Algorithm");
+MODULE_AUTHOR("Marc Alexander Lehmann & Nigel Cunningham");
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
-index 04f3973..62c9746 100644
+index 6123c70..55f0afc 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -42,7 +42,6 @@
@@ -1638,32 +1640,33 @@
#include <linux/suspend.h>
#include <linux/cpu.h>
diff --git a/drivers/md/md.c b/drivers/md/md.c
-index f883b7e..9fb308d 100644
+index cef9ebd..97e638e 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
-@@ -5430,6 +5430,8 @@ void md_do_sync(mddev_t *mddev)
+@@ -5426,6 +5426,8 @@ void md_do_sync(mddev_t *mddev)
last_mark = next;
}
-+ while(freezer_is_on())
++ while (freezer_is_on())
+ yield();
if (kthread_should_stop()) {
/*
diff --git a/fs/buffer.c b/fs/buffer.c
-index 0e5ec37..8455e94 100644
+index 7249e01..6b8393a 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
-@@ -234,6 +234,90 @@ void thaw_bdev(struct block_device *bdev, struct super_block *sb)
+@@ -247,6 +247,93 @@ void thaw_bdev(struct block_device *bdev, struct super_block *sb)
}
EXPORT_SYMBOL(thaw_bdev);
-+//#define DEBUG_FS_FREEZING
++/* #define DEBUG_FS_FREEZING */
++
+/**
+ * freeze_filesystems - lock all filesystems and force them into a consistent
+ * state
+ */
-+void freeze_filesystems(void)
++void freeze_filesystems(int which)
+{
+ struct super_block *sb;
+
@@ -1675,14 +1678,15 @@
+ */
+ list_for_each_entry_reverse(sb, &super_blocks, s_list) {
+#ifdef DEBUG_FS_FREEZING
-+ printk("Considering %s.%s: (root %p, bdev %x)",
++ printk(KERN_INFO "Considering %s.%s: (root %p, bdev %x)",
+ sb->s_type->name ? sb->s_type->name : "?",
+ sb->s_subtype ? sb->s_subtype : "", sb->s_root,
+ sb->s_bdev ? sb->s_bdev->bd_dev : 0);
+#endif
+
+ if (sb->s_type->fs_flags & FS_IS_FUSE &&
-+ sb->s_frozen == SB_UNFROZEN) {
++ sb->s_frozen == SB_UNFROZEN &&
++ which & FS_FREEZER_FUSE) {
+ sb->s_frozen = SB_FREEZE_TRANS;
+ sb->s_flags |= MS_FROZEN;
+ printk("Fuse filesystem done.\n");
@@ -1692,20 +1696,21 @@
+ if (!sb->s_root || !sb->s_bdev ||
+ (sb->s_frozen == SB_FREEZE_TRANS) ||
+ (sb->s_flags & MS_RDONLY) ||
-+ (sb->s_flags & MS_FROZEN)) {
++ (sb->s_flags & MS_FROZEN) ||
++ !(which & FS_FREEZER_NORMAL)) {
+#ifdef DEBUG_FS_FREEZING
-+ printk("Nope.\n");
++ printk(KERN_INFO "Nope.\n");
+#endif
+ continue;
+ }
+
+#ifdef DEBUG_FS_FREEZING
-+ printk("Freezing %x... ", sb->s_bdev->bd_dev);
++ printk(KERN_INFO "Freezing %x... ", sb->s_bdev->bd_dev);
+#endif
+ freeze_bdev(sb->s_bdev);
+ sb->s_flags |= MS_FROZEN;
+#ifdef DEBUG_FS_FREEZING
-+ printk("Done.\n");
++ printk(KERN_INFO "Done.\n");
+#endif
+ }
+
@@ -1724,14 +1729,14 @@
+ list_for_each_entry(sb, &super_blocks, s_list) {
+ if (!(sb->s_flags & MS_FROZEN))
+ continue;
-+
++
+ if (sb->s_type->fs_flags & FS_IS_FUSE) {
-+ if (!(which & FS_THAW_FUSE))
++ if (!(which & FS_FREEZER_FUSE))
+ continue;
+
+ sb->s_frozen = SB_UNFROZEN;
+ } else {
-+ if (!(which & FS_THAW_NORMAL))
++ if (!(which & FS_FREEZER_NORMAL))
+ continue;
+
+ thaw_bdev(sb->s_bdev, sb);
@@ -1758,7 +1763,7 @@
.kill_sb = fuse_ctl_kill_sb,
};
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
-index 3ad22be..29097a7 100644
+index db534bc..56a5923 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -7,6 +7,7 @@
@@ -1777,7 +1782,7 @@
MODULE_ALIAS_MISCDEV(FUSE_MINOR);
-@@ -693,6 +695,8 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov,
+@@ -702,6 +704,8 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov,
if (!fc)
return -EPERM;
@@ -1786,7 +1791,7 @@
restart:
spin_lock(&fc->lock);
err = -EAGAIN;
-@@ -818,6 +822,9 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov,
+@@ -828,6 +832,9 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov,
if (!fc)
return -EPERM;
@@ -1797,7 +1802,7 @@
if (nbytes < sizeof(struct fuse_out_header))
return -EINVAL;
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index bd5a772..a333f6c 100644
+index 80d2f52..a50a2b7 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -7,12 +7,14 @@
@@ -1815,7 +1820,7 @@
#if BITS_PER_LONG >= 64
static inline void fuse_dentry_settime(struct dentry *entry, u64 time)
-@@ -146,6 +148,9 @@ static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd)
+@@ -176,6 +178,9 @@ static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd)
return 0;
fc = get_fuse_conn(inode);
@@ -1825,7 +1830,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return 0;
-@@ -236,6 +241,8 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry,
+@@ -271,6 +276,8 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry,
if (IS_ERR(req))
return ERR_PTR(PTR_ERR(req));
@@ -1834,7 +1839,7 @@
forget_req = fuse_get_req(fc);
if (IS_ERR(forget_req)) {
fuse_put_request(fc, req);
-@@ -324,6 +331,8 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode,
+@@ -361,6 +368,8 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode,
if (IS_ERR(forget_req))
return PTR_ERR(forget_req);
@@ -1843,7 +1848,7 @@
req = fuse_get_req(fc);
err = PTR_ERR(req);
if (IS_ERR(req))
-@@ -405,6 +414,8 @@ static int create_new_entry(struct fuse_conn *fc, struct fuse_req *req,
+@@ -446,6 +455,8 @@ static int create_new_entry(struct fuse_conn *fc, struct fuse_req *req,
int err;
struct fuse_req *forget_req;
@@ -1852,7 +1857,7 @@
forget_req = fuse_get_req(fc);
if (IS_ERR(forget_req)) {
fuse_put_request(fc, req);
-@@ -498,7 +509,11 @@ static int fuse_mkdir(struct inode *dir, struct dentry *entry, int mode)
+@@ -543,7 +554,11 @@ static int fuse_mkdir(struct inode *dir, struct dentry *entry, int mode)
{
struct fuse_mkdir_in inarg;
struct fuse_conn *fc = get_fuse_conn(dir);
@@ -1865,7 +1870,7 @@
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -518,7 +533,11 @@ static int fuse_symlink(struct inode *dir, struct dentry *entry,
+@@ -563,7 +578,11 @@ static int fuse_symlink(struct inode *dir, struct dentry *entry,
{
struct fuse_conn *fc = get_fuse_conn(dir);
unsigned len = strlen(link) + 1;
@@ -1878,7 +1883,7 @@
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -535,7 +554,11 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry)
+@@ -580,7 +599,11 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry)
{
int err;
struct fuse_conn *fc = get_fuse_conn(dir);
@@ -1891,7 +1896,7 @@
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -566,7 +589,11 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry)
+@@ -611,7 +634,11 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry)
{
int err;
struct fuse_conn *fc = get_fuse_conn(dir);
@@ -1905,7 +1910,7 @@
return PTR_ERR(req);
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
-index f79de7c..cd0e464 100644
+index bb05d22..a641288 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -7,11 +7,13 @@
@@ -1931,7 +1936,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -465,6 +469,8 @@ static int fuse_commit_write(struct file *file, struct page *page,
+@@ -544,6 +548,8 @@ static int fuse_buffered_write(struct file *file, struct inode *inode,
if (is_bad_inode(inode))
return -EIO;
@@ -1940,7 +1945,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -542,6 +548,8 @@ static ssize_t fuse_direct_io(struct file *file, const char __user *buf,
+@@ -637,6 +643,8 @@ static ssize_t fuse_direct_io(struct file *file, const char __user *buf,
if (is_bad_inode(inode))
return -EIO;
@@ -1949,7 +1954,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -689,6 +697,8 @@ static int fuse_getlk(struct file *file, struct file_lock *fl)
+@@ -789,6 +797,8 @@ static int fuse_getlk(struct file *file, struct file_lock *fl)
struct fuse_lk_out outarg;
int err;
@@ -1958,7 +1963,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -719,6 +729,8 @@ static int fuse_setlk(struct file *file, struct file_lock *fl)
+@@ -819,6 +829,8 @@ static int fuse_setlk(struct file *file, struct file_lock *fl, int flock)
if (fl->fl_flags & FL_CLOSE)
return 0;
@@ -1967,7 +1972,7 @@
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
-@@ -766,6 +778,8 @@ static sector_t fuse_bmap(struct address_space *mapping, sector_t block)
+@@ -883,6 +895,8 @@ static sector_t fuse_bmap(struct address_space *mapping, sector_t block)
if (!inode->i_sb->s_bdev || fc->no_bmap)
return 0;
@@ -1978,27 +1983,28 @@
return 0;
diff --git a/fs/fuse/fuse.h b/fs/fuse/fuse.h
new file mode 100644
-index 0000000..ae1c80b
+index 0000000..170e49a
--- /dev/null
+++ b/fs/fuse/fuse.h
-@@ -0,0 +1,12 @@
+@@ -0,0 +1,13 @@
+#define FUSE_MIGHT_FREEZE(superblock, desc) \
+do { \
+ int printed = 0; \
-+ while(superblock->s_frozen != SB_UNFROZEN) { \
++ while (superblock->s_frozen != SB_UNFROZEN) { \
+ if (!printed) { \
-+ printk("%d frozen in " desc ".\n", current->pid); \
++ printk(KERN_INFO "%d frozen in " desc ".\n", \
++ current->pid); \
+ printed = 1; \
+ } \
+ try_to_freeze(); \
+ yield(); \
+ } \
-+} while(0)
++} while (0)
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
-index 5448f62..55958a8 100644
+index 84f9f7d..7fd35d3 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
-@@ -638,7 +638,7 @@ static int fuse_get_sb(struct file_system_type *fs_type,
+@@ -702,7 +702,7 @@ static int fuse_get_sb(struct file_system_type *fs_type,
static struct file_system_type fuse_fs_type = {
.owner = THIS_MODULE,
.name = "fuse",
@@ -2007,7 +2013,7 @@
.get_sb = fuse_get_sb,
.kill_sb = kill_anon_super,
};
-@@ -657,7 +657,7 @@ static struct file_system_type fuseblk_fs_type = {
+@@ -721,7 +721,7 @@ static struct file_system_type fuseblk_fs_type = {
.name = "fuseblk",
.get_sb = fuse_get_sb_blk,
.kill_sb = kill_block_super,
@@ -2017,31 +2023,29 @@
static inline int register_fuseblk(void)
diff --git a/fs/ioctl.c b/fs/ioctl.c
-index c2a773e..03915f0 100644
+index c2a773e..d83b362 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
-@@ -174,3 +174,5 @@ asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+@@ -174,3 +174,4 @@ asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
out:
return error;
}
-+
+EXPORT_SYMBOL(sys_ioctl);
-diff --git a/include/asm-i386/suspend.h b/include/asm-i386/suspend.h
-index a252073..2606fc7 100644
---- a/include/asm-i386/suspend.h
-+++ b/include/asm-i386/suspend.h
-@@ -8,6 +8,9 @@
-
- static inline int arch_prepare_suspend(void) { return 0; }
+diff --git a/fs/namei.c b/fs/namei.c
+index 73e2e66..2fae2c1 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -2174,6 +2174,8 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
+ if (!dir->i_op || !dir->i_op->unlink)
+ return -EPERM;
-+extern int toi_faulted;
-+#define clear_toi_fault() do { toi_faulted = 0; } while(0)
++ vfs_check_frozen(dir->i_sb, SB_FREEZE_WRITE);
+
- /* image of the saved processor state */
- struct saved_context {
- u16 es, fs, gs, ss;
+ DQUOT_INIT(dir);
+
+ mutex_lock(&dentry->d_inode->i_mutex);
diff --git a/include/asm-powerpc/suspend.h b/include/asm-powerpc/suspend.h
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/linux-2.6-suspend2.patch?r1=1.1.2.2.2.4&r2=1.1.2.2.2.5&f=u
More information about the pld-cvs-commit
mailing list