aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAdrian Bunk <bunk@stusta.de>2005-01-10 17:25:07 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-10 17:25:07 -0800
commit823986199ffd2928bcff8b6ab3c0dede78d19253 (patch)
tree5b85c3ed2f409938fd33491a91a8795a13470d34 /fs
parentb69ae6c23849111524f3f89cc0a45ee1742689d4 (diff)
downloadhistory-823986199ffd2928bcff8b6ab3c0dede78d19253.tar.gz
[PATCH] ext3 cleanups
- make some needlessly global code static - super.c: remove the unused global function ext3_panic Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext3/balloc.c2
-rw-r--r--fs/ext3/dir.c2
-rw-r--r--fs/ext3/inode.c4
-rw-r--r--fs/ext3/resize.c4
-rw-r--r--fs/ext3/super.c45
-rw-r--r--fs/ext3/xattr.c242
-rw-r--r--fs/ext3/xattr.h8
7 files changed, 143 insertions, 164 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index 4631ae139bf7ec..3f1b811ef2ad20 100644
--- a/fs/ext3/balloc.c
+++ b/fs/ext3/balloc.c
@@ -1451,7 +1451,7 @@ static inline int test_root(int a, int b)
}
}
-int ext3_group_sparse(int group)
+static int ext3_group_sparse(int group)
{
return (test_root(group, 3) || test_root(group, 5) ||
test_root(group, 7));
diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c
index b2bb908173714f..832867aef3dca6 100644
--- a/fs/ext3/dir.c
+++ b/fs/ext3/dir.c
@@ -306,7 +306,7 @@ static void free_rb_tree_fname(struct rb_root *root)
}
-struct dir_private_info *create_dir_info(loff_t pos)
+static struct dir_private_info *create_dir_info(loff_t pos)
{
struct dir_private_info *p;
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index 1132ad886f5a65..0a92408946a9cb 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -39,6 +39,8 @@
#include "xattr.h"
#include "acl.h"
+static int ext3_writepage_trans_blocks(struct inode *inode);
+
/*
* Test whether an inode is a fast symlink.
*/
@@ -2807,7 +2809,7 @@ err_out:
* block and work out the exact number of indirects which are touched. Pah.
*/
-int ext3_writepage_trans_blocks(struct inode *inode)
+static int ext3_writepage_trans_blocks(struct inode *inode)
{
int bpp = ext3_journal_blocks_per_page(inode);
int indirects = (EXT3_NDIR_BLOCKS % bpp) ? 5 : 3;
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c
index b2786fac330d6a..2c9f81278d5dab 100644
--- a/fs/ext3/resize.c
+++ b/fs/ext3/resize.c
@@ -285,8 +285,8 @@ exit_journal:
* sequence of powers of 3, 5, and 7: 1, 3, 5, 7, 9, 25, 27, 49, 81, ...
* For a non-sparse filesystem it will be every group: 1, 2, 3, 4, ...
*/
-unsigned ext3_list_backups(struct super_block *sb, unsigned *three,
- unsigned *five, unsigned *seven)
+static unsigned ext3_list_backups(struct super_block *sb, unsigned *three,
+ unsigned *five, unsigned *seven)
{
unsigned *min = three;
int mult = 3;
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 9b654f7f29d7fa..d962d89e9ce1a3 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -50,6 +50,13 @@ static void ext3_mark_recovery_complete(struct super_block * sb,
static void ext3_clear_journal_err(struct super_block * sb,
struct ext3_super_block * es);
static int ext3_sync_fs(struct super_block *sb, int wait);
+static const char *ext3_decode_error(struct super_block * sb, int errno,
+ char nbuf[16]);
+static int ext3_remount (struct super_block * sb, int * flags, char * data);
+static int ext3_statfs (struct super_block * sb, struct kstatfs * buf);
+static void ext3_unlockfs(struct super_block *sb);
+static void ext3_write_super (struct super_block * sb);
+static void ext3_write_super_lockfs(struct super_block *sb);
/*
* Wrappers for journal_start/end.
@@ -178,7 +185,8 @@ void ext3_error (struct super_block * sb, const char * function,
ext3_handle_error(sb);
}
-const char *ext3_decode_error(struct super_block * sb, int errno, char nbuf[16])
+static const char *ext3_decode_error(struct super_block * sb, int errno,
+ char nbuf[16])
{
char *errstr = NULL;
@@ -261,29 +269,6 @@ void ext3_abort (struct super_block * sb, const char * function,
journal_abort(EXT3_SB(sb)->s_journal, -EIO);
}
-/* Deal with the reporting of failure conditions while running, such as
- * inconsistencies in operation or invalid system states.
- *
- * Use ext3_error() for cases of invalid filesystem states, as that will
- * record an error on disk and force a filesystem check on the next boot.
- */
-NORET_TYPE void ext3_panic (struct super_block * sb, const char * function,
- const char * fmt, ...)
-{
- va_list args;
-
- va_start(args, fmt);
- printk(KERN_CRIT "EXT3-fs error (device %s): %s: ",sb->s_id, function);
- vprintk(fmt, args);
- printk("\n");
- va_end(args);
-
- /* this is to prevent panic from syncing this filesystem */
- /* AKPM: is this sufficient? */
- sb->s_flags |= MS_RDONLY;
- panic ("EXT3-fs panic forced\n");
-}
-
void ext3_warning (struct super_block * sb, const char * function,
const char * fmt, ...)
{
@@ -386,7 +371,7 @@ static void dump_orphan_list(struct super_block *sb, struct ext3_sb_info *sbi)
}
}
-void ext3_put_super (struct super_block * sb)
+static void ext3_put_super (struct super_block * sb)
{
struct ext3_sb_info *sbi = EXT3_SB(sb);
struct ext3_super_block *es = sbi->s_es;
@@ -2018,7 +2003,7 @@ int ext3_force_commit(struct super_block *sb)
* This implicitly triggers the writebehind on sync().
*/
-void ext3_write_super (struct super_block * sb)
+static void ext3_write_super (struct super_block * sb)
{
if (down_trylock(&sb->s_lock) == 0)
BUG();
@@ -2041,7 +2026,7 @@ static int ext3_sync_fs(struct super_block *sb, int wait)
* LVM calls this function before a (read-only) snapshot is created. This
* gives us a chance to flush the journal completely and mark the fs clean.
*/
-void ext3_write_super_lockfs(struct super_block *sb)
+static void ext3_write_super_lockfs(struct super_block *sb)
{
sb->s_dirt = 0;
@@ -2062,7 +2047,7 @@ void ext3_write_super_lockfs(struct super_block *sb)
* Called by LVM after the snapshot is done. We need to reset the RECOVER
* flag here, even though the filesystem is not technically dirty yet.
*/
-void ext3_unlockfs(struct super_block *sb)
+static void ext3_unlockfs(struct super_block *sb)
{
if (!(sb->s_flags & MS_RDONLY)) {
lock_super(sb);
@@ -2074,7 +2059,7 @@ void ext3_unlockfs(struct super_block *sb)
}
}
-int ext3_remount (struct super_block * sb, int * flags, char * data)
+static int ext3_remount (struct super_block * sb, int * flags, char * data)
{
struct ext3_super_block * es;
struct ext3_sb_info *sbi = EXT3_SB(sb);
@@ -2146,7 +2131,7 @@ int ext3_remount (struct super_block * sb, int * flags, char * data)
return 0;
}
-int ext3_statfs (struct super_block * sb, struct kstatfs * buf)
+static int ext3_statfs (struct super_block * sb, struct kstatfs * buf)
{
struct ext3_super_block *es = EXT3_SB(sb)->s_es;
unsigned long overhead;
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
index 935778cc834f67..31ef0eef09a3c1 100644
--- a/fs/ext3/xattr.c
+++ b/fs/ext3/xattr.c
@@ -139,22 +139,11 @@ ext3_xattr_handler(int name_index)
}
/*
- * Inode operation listxattr()
- *
- * dentry->d_inode->i_sem: don't care
- */
-ssize_t
-ext3_listxattr(struct dentry *dentry, char *buffer, size_t size)
-{
- return ext3_xattr_list(dentry->d_inode, buffer, size);
-}
-
-/*
* ext3_xattr_block_get()
*
* routine looks for attribute in EA block and returns it's value and size
*/
-int
+static int
ext3_xattr_block_get(struct inode *inode, int name_index, const char *name,
void *buffer, size_t buffer_size)
{
@@ -250,7 +239,7 @@ cleanup:
*
* routine looks for attribute in inode body and returns it's value and size
*/
-int
+static int
ext3_xattr_ibody_get(struct inode *inode, int name_index, const char *name,
void *buffer, size_t buffer_size)
{
@@ -352,7 +341,7 @@ ext3_xattr_get(struct inode *inode, int name_index, const char *name,
*
* generate list of attributes stored in EA block
*/
-int
+static int
ext3_xattr_block_list(struct inode *inode, char *buffer, size_t buffer_size)
{
struct buffer_head *bh = NULL;
@@ -428,7 +417,7 @@ cleanup:
*
* generate list of attributes stored in inode body
*/
-int
+static int
ext3_xattr_ibody_list(struct inode *inode, char *buffer, size_t buffer_size)
{
struct ext3_xattr_entry *last;
@@ -507,7 +496,7 @@ cleanup:
* Returns a negative error number on failure, or the number of bytes
* used / required on success.
*/
-int
+static int
ext3_xattr_list(struct inode *inode, char *buffer, size_t buffer_size)
{
int size = buffer_size;
@@ -546,6 +535,17 @@ cleanup:
}
/*
+ * Inode operation listxattr()
+ *
+ * dentry->d_inode->i_sem: don't care
+ */
+ssize_t
+ext3_listxattr(struct dentry *dentry, char *buffer, size_t size)
+{
+ return ext3_xattr_list(dentry->d_inode, buffer, size);
+}
+
+/*
* If the EXT3_FEATURE_COMPAT_EXT_ATTR feature of this file system is
* not set, set it.
*/
@@ -571,7 +571,7 @@ static void ext3_xattr_update_super_block(handle_t *handle,
* search attribute and calculate free space in inode body
* NOTE: free space includes space our attribute hold
*/
-int
+static int
ext3_xattr_ibody_find(struct inode *inode, int name_index,
const char *name, int *free)
{
@@ -638,7 +638,7 @@ ext3_xattr_ibody_find(struct inode *inode, int name_index,
* search attribute and calculate free space in EA block (if it allocated)
* NOTE: free space includes space our attribute hold
*/
-int
+static int
ext3_xattr_block_find(struct inode *inode, int name_index,
const char *name, int *free)
{
@@ -698,7 +698,7 @@ bad_block: ext3_error(inode->i_sb, "ext3_xattr_get",
*
* this routine add/remove/replace attribute in inode body
*/
-int
+static int
ext3_xattr_ibody_set(handle_t *handle, struct inode *inode, int name_index,
const char *name, const void *value, size_t value_len,
int flags)
@@ -846,112 +846,11 @@ done:
}
/*
- * ext3_xattr_set_handle()
- *
- * Create, replace or remove an extended attribute for this inode. Buffer
- * is NULL to remove an existing extended attribute, and non-NULL to
- * either replace an existing extended attribute, or create a new extended
- * attribute. The flags XATTR_REPLACE and XATTR_CREATE
- * specify that an extended attribute must exist and must not exist
- * previous to the call, respectively.
- *
- * Returns 0, or a negative error number on failure.
- */
-int
-ext3_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index,
- const char *name, const void *value, size_t value_len,
- int flags)
-{
- int free1 = -1, free2 = -1;
- int err, where = 0, total;
- int name_len;
-
- ea_idebug(inode, "name=%d.%s, value=%p, value_len=%ld",
- name_index, name, value, (long)value_len);
-
- if (IS_RDONLY(inode))
- return -EROFS;
- if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
- return -EPERM;
- if (value == NULL)
- value_len = 0;
- if (name == NULL)
- return -EINVAL;
- name_len = strlen(name);
- if (name_len > 255 || value_len > inode->i_sb->s_blocksize)
- return -ERANGE;
- down_write(&EXT3_I(inode)->xattr_sem);
-
-#define EX_FOUND_IN_IBODY 1
-#define EX_FOUND_IN_BLOCK 2
-
- /* try to find attribute in inode body */
- err = ext3_xattr_ibody_find(inode, name_index, name, &free1);
- if (err == 0) {
- /* found EA in inode */
- where = EX_FOUND_IN_IBODY;
- } else if (err == -ENOENT) {
- /* there is no such attribute in inode body */
- /* try to find attribute in dedicated block */
- err = ext3_xattr_block_find(inode, name_index, name, &free2);
- if (err != 0 && err != -ENOENT) {
- /* not found EA in block */
- goto finish;
- } else if (err == 0) {
- /* found EA in block */
- where = EX_FOUND_IN_BLOCK;
- }
- } else
- goto finish;
-
- /* check flags: may replace? may create ? */
- if (where && (flags & XATTR_CREATE)) {
- err = -EEXIST;
- goto finish;
- } else if (!where && (flags & XATTR_REPLACE)) {
- err = -ENODATA;
- goto finish;
- }
-
- /* check if we have enough space to store attribute */
- total = EXT3_XATTR_LEN(strlen(name)) + value_len;
- if (total > free1 && free2 > 0 && total > free2) {
- /* have no enough space */
- err = -ENOSPC;
- goto finish;
- }
-
- /* there are two cases when we want to remove EA from original storage:
- * a) EA is stored in the inode, but new value doesn't fit
- * b) EA is stored in the block, but new value fit in inode
- */
- if (where == EX_FOUND_IN_IBODY && total > free1)
- ext3_xattr_ibody_set(handle, inode, name_index, name,
- NULL, 0, flags);
- else if (where == EX_FOUND_IN_BLOCK && total <= free1)
- ext3_xattr_block_set(handle, inode, name_index,
- name, NULL, 0, flags);
-
- /* try to store EA in inode body */
- err = ext3_xattr_ibody_set(handle, inode, name_index, name,
- value, value_len, flags);
- if (err) {
- /* can't store EA in inode body: try to store in block */
- err = ext3_xattr_block_set(handle, inode, name_index, name,
- value, value_len, flags);
- }
-
-finish:
- up_write(&EXT3_I(inode)->xattr_sem);
- return err;
-}
-
-/*
* ext3_xattr_block_set()
*
* this routine add/remove/replace attribute in EA block
*/
-int
+static int
ext3_xattr_block_set(handle_t *handle, struct inode *inode, int name_index,
const char *name, const void *value, size_t value_len,
int flags)
@@ -1206,6 +1105,107 @@ cleanup:
}
/*
+ * ext3_xattr_set_handle()
+ *
+ * Create, replace or remove an extended attribute for this inode. Buffer
+ * is NULL to remove an existing extended attribute, and non-NULL to
+ * either replace an existing extended attribute, or create a new extended
+ * attribute. The flags XATTR_REPLACE and XATTR_CREATE
+ * specify that an extended attribute must exist and must not exist
+ * previous to the call, respectively.
+ *
+ * Returns 0, or a negative error number on failure.
+ */
+int
+ext3_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index,
+ const char *name, const void *value, size_t value_len,
+ int flags)
+{
+ int free1 = -1, free2 = -1;
+ int err, where = 0, total;
+ int name_len;
+
+ ea_idebug(inode, "name=%d.%s, value=%p, value_len=%ld",
+ name_index, name, value, (long)value_len);
+
+ if (IS_RDONLY(inode))
+ return -EROFS;
+ if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
+ return -EPERM;
+ if (value == NULL)
+ value_len = 0;
+ if (name == NULL)
+ return -EINVAL;
+ name_len = strlen(name);
+ if (name_len > 255 || value_len > inode->i_sb->s_blocksize)
+ return -ERANGE;
+ down_write(&EXT3_I(inode)->xattr_sem);
+
+#define EX_FOUND_IN_IBODY 1
+#define EX_FOUND_IN_BLOCK 2
+
+ /* try to find attribute in inode body */
+ err = ext3_xattr_ibody_find(inode, name_index, name, &free1);
+ if (err == 0) {
+ /* found EA in inode */
+ where = EX_FOUND_IN_IBODY;
+ } else if (err == -ENOENT) {
+ /* there is no such attribute in inode body */
+ /* try to find attribute in dedicated block */
+ err = ext3_xattr_block_find(inode, name_index, name, &free2);
+ if (err != 0 && err != -ENOENT) {
+ /* not found EA in block */
+ goto finish;
+ } else if (err == 0) {
+ /* found EA in block */
+ where = EX_FOUND_IN_BLOCK;
+ }
+ } else
+ goto finish;
+
+ /* check flags: may replace? may create ? */
+ if (where && (flags & XATTR_CREATE)) {
+ err = -EEXIST;
+ goto finish;
+ } else if (!where && (flags & XATTR_REPLACE)) {
+ err = -ENODATA;
+ goto finish;
+ }
+
+ /* check if we have enough space to store attribute */
+ total = EXT3_XATTR_LEN(strlen(name)) + value_len;
+ if (total > free1 && free2 > 0 && total > free2) {
+ /* have no enough space */
+ err = -ENOSPC;
+ goto finish;
+ }
+
+ /* there are two cases when we want to remove EA from original storage:
+ * a) EA is stored in the inode, but new value doesn't fit
+ * b) EA is stored in the block, but new value fit in inode
+ */
+ if (where == EX_FOUND_IN_IBODY && total > free1)
+ ext3_xattr_ibody_set(handle, inode, name_index, name,
+ NULL, 0, flags);
+ else if (where == EX_FOUND_IN_BLOCK && total <= free1)
+ ext3_xattr_block_set(handle, inode, name_index,
+ name, NULL, 0, flags);
+
+ /* try to store EA in inode body */
+ err = ext3_xattr_ibody_set(handle, inode, name_index, name,
+ value, value_len, flags);
+ if (err) {
+ /* can't store EA in inode body: try to store in block */
+ err = ext3_xattr_block_set(handle, inode, name_index, name,
+ value, value_len, flags);
+ }
+
+finish:
+ up_write(&EXT3_I(inode)->xattr_sem);
+ return err;
+}
+
+/*
* Second half of ext3_xattr_set_handle(): Update the file system.
*/
static int
diff --git a/fs/ext3/xattr.h b/fs/ext3/xattr.h
index b677cf7ac56809..b2b25ad82451cb 100644
--- a/fs/ext3/xattr.h
+++ b/fs/ext3/xattr.h
@@ -65,10 +65,8 @@ extern struct xattr_handler ext3_xattr_security_handler;
extern ssize_t ext3_listxattr(struct dentry *, char *, size_t);
extern int ext3_xattr_get(struct inode *, int, const char *, void *, size_t);
-extern int ext3_xattr_list(struct inode *, char *, size_t);
extern int ext3_xattr_set(struct inode *, int, const char *, const void *, size_t, int);
extern int ext3_xattr_set_handle(handle_t *, struct inode *, int, const char *,const void *,size_t,int);
-extern int ext3_xattr_block_set(handle_t *, struct inode *, int, const char *,const void *,size_t,int);
extern void ext3_xattr_delete_inode(handle_t *, struct inode *);
extern void ext3_xattr_put_super(struct super_block *);
@@ -88,12 +86,6 @@ ext3_xattr_get(struct inode *inode, int name_index, const char *name,
}
static inline int
-ext3_xattr_list(struct inode *inode, void *buffer, size_t size)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int
ext3_xattr_set(struct inode *inode, int name_index, const char *name,
const void *value, size_t size, int flags)
{