projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[powerpc.git]
/
fs
/
ext4
/
super.c
diff --git
a/fs/ext4/super.c
b/fs/ext4/super.c
index
b4b022a
..
486a641
100644
(file)
--- a/
fs/ext4/super.c
+++ b/
fs/ext4/super.c
@@
-486,7
+486,7
@@
static void ext4_put_super (struct super_block * sb)
return;
}
return;
}
-static
kmem_cache_t
*ext4_inode_cachep;
+static
struct kmem_cache
*ext4_inode_cachep;
/*
* Called inside transaction, so use GFP_NOFS
/*
* Called inside transaction, so use GFP_NOFS
@@
-495,7
+495,7
@@
static struct inode *ext4_alloc_inode(struct super_block *sb)
{
struct ext4_inode_info *ei;
{
struct ext4_inode_info *ei;
- ei = kmem_cache_alloc(ext4_inode_cachep,
SLAB
_NOFS);
+ ei = kmem_cache_alloc(ext4_inode_cachep,
GFP
_NOFS);
if (!ei)
return NULL;
#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL
if (!ei)
return NULL;
#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL
@@
-513,7
+513,7
@@
static void ext4_destroy_inode(struct inode *inode)
kmem_cache_free(ext4_inode_cachep, EXT4_I(inode));
}
kmem_cache_free(ext4_inode_cachep, EXT4_I(inode));
}
-static void init_once(void * foo,
kmem_cache_t
* cachep, unsigned long flags)
+static void init_once(void * foo,
struct kmem_cache
* cachep, unsigned long flags)
{
struct ext4_inode_info *ei = (struct ext4_inode_info *) foo;
{
struct ext4_inode_info *ei = (struct ext4_inode_info *) foo;
@@
-1321,6
+1321,12
@@
static void ext4_orphan_cleanup (struct super_block * sb,
return;
}
return;
}
+ if (bdev_read_only(sb->s_bdev)) {
+ printk(KERN_ERR "EXT4-fs: write access "
+ "unavailable, skipping orphan cleanup.\n");
+ return;
+ }
+
if (EXT4_SB(sb)->s_mount_state & EXT4_ERROR_FS) {
if (es->s_last_orphan)
jbd_debug(1, "Errors on filesystem, "
if (EXT4_SB(sb)->s_mount_state & EXT4_ERROR_FS) {
if (es->s_last_orphan)
jbd_debug(1, "Errors on filesystem, "
@@
-2460,6
+2466,7
@@
static int ext4_statfs (struct dentry * dentry, struct kstatfs * buf)
struct ext4_super_block *es = sbi->s_es;
ext4_fsblk_t overhead;
int i;
struct ext4_super_block *es = sbi->s_es;
ext4_fsblk_t overhead;
int i;
+ u64 fsid;
if (test_opt (sb, MINIX_DF))
overhead = 0;
if (test_opt (sb, MINIX_DF))
overhead = 0;
@@
-2506,6
+2513,10
@@
static int ext4_statfs (struct dentry * dentry, struct kstatfs * buf)
buf->f_files = le32_to_cpu(es->s_inodes_count);
buf->f_ffree = percpu_counter_sum(&sbi->s_freeinodes_counter);
buf->f_namelen = EXT4_NAME_LEN;
buf->f_files = le32_to_cpu(es->s_inodes_count);
buf->f_ffree = percpu_counter_sum(&sbi->s_freeinodes_counter);
buf->f_namelen = EXT4_NAME_LEN;
+ fsid = le64_to_cpup((void *)es->s_uuid) ^
+ le64_to_cpup((void *)es->s_uuid + sizeof(u64));
+ buf->f_fsid.val[0] = fsid & 0xFFFFFFFFUL;
+ buf->f_fsid.val[1] = (fsid >> 32) & 0xFFFFFFFFUL;
return 0;
}
return 0;
}