* [BK] [PATCH] ReiserFS assorted trivia
@ 2002-12-14 21:18 Hans Reiser
0 siblings, 0 replies; only message in thread
From: Hans Reiser @ 2002-12-14 21:18 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: reiserfs fixes for 2.5.51 --]
[-- Type: message/rfc822, Size: 11794 bytes --]
From: Oleg Drokin <green@namesys.com>
To: reiser@namesys.com
Subject: reiserfs fixes for 2.5.51
Date: Fri, 13 Dec 2002 20:04:24 +0300
Message-ID: <20021213200424.A8873@namesys.com>
Hello!
These five changesets contain fixes for reiserfs. They fix issue with
handling of displacing_large_files allocator option, a problem with
remounting from readwrite to readwrite mode if FS holds some deleted,
but not yet closed files, replace lock_kernel() stuff with reiserfs
analogs, some C99 designated initialisers fixes and fixes for annoying
warnings in fs/reiserfs/procfs.c if you compile with reiserfs statistics.
You can pull these from bk://thebsh.namesys.com/bk/reiser3-linux-2.5-fixes
ChangeSet@1.849, 2002-12-07 14:13:55+03:00, green@angband.namesys.com
reiserfs: Fixed annoying warnings in fs/reiserfs/procfs.c
ChangeSet@1.848, 2002-12-07 13:20:18+03:00, green@angband.namesys.com
reiserfs: C99 designated initializers, by Art Haas
ChangeSet@1.847, 2002-12-07 13:18:51+03:00, green@angband.namesys.com
reiserfs: lock_kernel is replaced with its reiserfs variant
ChangeSet@1.846, 2002-12-07 13:17:28+03:00, green@angband.namesys.com
reiserfs: Fix a problem with delayed unlinks and remounting RW filesystem RW.
ChangeSet@1.845, 2002-12-07 13:16:27+03:00, green@angband.namesys.com
reiserfs: Take into account file information even when not doing preallocation. Fixes a bug with displacing_large_files option.
Diffstats:
fs/reiserfs/dir.c | 6 +++---
fs/reiserfs/inode.c | 16 ++++++++--------
fs/reiserfs/journal.c | 5 ++---
fs/reiserfs/namei.c | 18 +++++++++---------
fs/reiserfs/procfs.c | 16 ++++++++--------
fs/reiserfs/super.c | 36 ++++++++++++++++++++----------------
include/linux/reiserfs_fs.h | 3 ++-
7 files changed, 52 insertions(+), 48 deletions(-)
Plain text patch:
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.844 -> 1.849
# fs/reiserfs/procfs.c 1.14 -> 1.15
# fs/reiserfs/inode.c 1.68 -> 1.70
# fs/reiserfs/super.c 1.54 -> 1.56
# fs/reiserfs/dir.c 1.17 -> 1.18
# fs/reiserfs/namei.c 1.44 -> 1.45
# fs/reiserfs/journal.c 1.59 -> 1.60
# include/linux/reiserfs_fs.h 1.45 -> 1.46
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/12/07 green@angband.namesys.com 1.845
# reiserfs: Take into account file information even when not doing preallocation. Fixes a bug with displacing_large_files option.
# --------------------------------------------
# 02/12/07 green@angband.namesys.com 1.846
# reiserfs: Fix a problem with delayed unlinks and remounting RW filesystem RW.
# --------------------------------------------
# 02/12/07 green@angband.namesys.com 1.847
# reiserfs: lock_kernel is replaced with its reiserfs variant
# --------------------------------------------
# 02/12/07 green@angband.namesys.com 1.848
# reiserfs: C99 designated initializers, by Art Haas
# --------------------------------------------
# 02/12/07 green@angband.namesys.com 1.849
# reiserfs: Fixed annoying warnings in fs/reiserfs/procfs.c
# --------------------------------------------
#
diff -Nru a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
--- a/fs/reiserfs/dir.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/dir.c Sat Dec 7 14:14:58 2002
@@ -18,9 +18,9 @@
int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry, int datasync) ;
struct file_operations reiserfs_dir_operations = {
- read: generic_read_dir,
- readdir: reiserfs_readdir,
- fsync: reiserfs_dir_fsync,
+ .read = generic_read_dir,
+ .readdir = reiserfs_readdir,
+ .fsync = reiserfs_dir_fsync,
};
int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry, int datasync) {
diff -Nru a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
--- a/fs/reiserfs/inode.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/inode.c Sat Dec 7 14:14:58 2002
@@ -490,7 +490,7 @@
return reiserfs_new_unf_blocknrs2(th, inode, allocated_block_nr, path, block);
}
#endif
- return reiserfs_new_unf_blocknrs (th, allocated_block_nr, path, block);
+ return reiserfs_new_unf_blocknrs (th, inode, allocated_block_nr, path, block);
}
int reiserfs_get_block (struct inode * inode, sector_t block,
@@ -2113,11 +2113,11 @@
}
struct address_space_operations reiserfs_address_space_operations = {
- writepage: reiserfs_writepage,
- readpage: reiserfs_readpage,
- releasepage: reiserfs_releasepage,
- sync_page: block_sync_page,
- prepare_write: reiserfs_prepare_write,
- commit_write: reiserfs_commit_write,
- bmap: reiserfs_aop_bmap
+ .writepage = reiserfs_writepage,
+ .readpage = reiserfs_readpage,
+ .releasepage = reiserfs_releasepage,
+ .sync_page = block_sync_page,
+ .prepare_write = reiserfs_prepare_write,
+ .commit_write = reiserfs_commit_write,
+ .bmap = reiserfs_aop_bmap
} ;
diff -Nru a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
--- a/fs/reiserfs/journal.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/journal.c Sat Dec 7 14:14:58 2002
@@ -1812,8 +1812,7 @@
struct reiserfs_journal_commit_task *ct = __ct;
struct reiserfs_journal_list *jl ;
- /* FIXMEL: is this needed? */
- lock_kernel();
+ reiserfs_write_lock(ct->p_s_sb);
jl = SB_JOURNAL_LIST(ct->p_s_sb) + ct->jindex ;
@@ -1824,7 +1823,7 @@
kupdate_one_transaction(ct->p_s_sb, jl) ;
}
reiserfs_kfree(ct->self, sizeof(struct reiserfs_journal_commit_task), ct->p_s_sb) ;
- unlock_kernel();
+ reiserfs_write_unlock(ct->p_s_sb);
}
static void setup_commit_task_arg(struct reiserfs_journal_commit_task *ct,
diff -Nru a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
--- a/fs/reiserfs/namei.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/namei.c Sat Dec 7 14:14:58 2002
@@ -1296,14 +1296,14 @@
*/
struct inode_operations reiserfs_dir_inode_operations = {
//&reiserfs_dir_operations, /* default_file_ops */
- create: reiserfs_create,
- lookup: reiserfs_lookup,
- link: reiserfs_link,
- unlink: reiserfs_unlink,
- symlink: reiserfs_symlink,
- mkdir: reiserfs_mkdir,
- rmdir: reiserfs_rmdir,
- mknod: reiserfs_mknod,
- rename: reiserfs_rename,
+ .create = reiserfs_create,
+ .lookup = reiserfs_lookup,
+ .link = reiserfs_link,
+ .unlink = reiserfs_unlink,
+ .symlink = reiserfs_symlink,
+ .mkdir = reiserfs_mkdir,
+ .rmdir = reiserfs_rmdir,
+ .mknod = reiserfs_mknod,
+ .rename = reiserfs_rename,
};
diff -Nru a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
--- a/fs/reiserfs/procfs.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/procfs.c Sat Dec 7 14:14:58 2002
@@ -78,7 +78,7 @@
struct super_block *sb;
char *format;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
if ( REISERFS_SB(sb)->s_properties & (1 << REISERFS_3_6) ) {
@@ -136,7 +136,7 @@
struct reiserfs_sb_info *r;
int len = 0;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
r = REISERFS_SB(sb);
@@ -229,7 +229,7 @@
int len = 0;
int level;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
r = REISERFS_SB(sb);
@@ -308,7 +308,7 @@
struct reiserfs_sb_info *r;
int len = 0;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
r = REISERFS_SB(sb);
@@ -352,7 +352,7 @@
int hash_code;
int len = 0;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
sb_info = REISERFS_SB(sb);
@@ -409,7 +409,7 @@
int len = 0;
int exact;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
sb_info = REISERFS_SB(sb);
@@ -461,7 +461,7 @@
struct journal_params *jp;
int len = 0;
- sb = procinfo_prologue((dev_t)data);
+ sb = procinfo_prologue((int)data);
if( sb == NULL )
return -ENOENT;
r = REISERFS_SB(sb);
@@ -604,7 +604,7 @@
{
return ( REISERFS_SB(sb)->procdir ) ? create_proc_read_entry
( name, 0, REISERFS_SB(sb)->procdir, func,
- ( void * ) sb->s_bdev->bd_dev) : NULL;
+ ( void * )(int) sb->s_bdev->bd_dev) : NULL;
}
void reiserfs_proc_unregister( struct super_block *sb, const char *name )
diff -Nru a/fs/reiserfs/super.c b/fs/reiserfs/super.c
--- a/fs/reiserfs/super.c Sat Dec 7 14:14:58 2002
+++ b/fs/reiserfs/super.c Sat Dec 7 14:14:58 2002
@@ -474,25 +474,25 @@
struct super_operations reiserfs_sops =
{
- alloc_inode: reiserfs_alloc_inode,
- destroy_inode: reiserfs_destroy_inode,
- write_inode: reiserfs_write_inode,
- dirty_inode: reiserfs_dirty_inode,
- delete_inode: reiserfs_delete_inode,
- put_super: reiserfs_put_super,
- write_super: reiserfs_write_super,
- write_super_lockfs: reiserfs_write_super_lockfs,
- unlockfs: reiserfs_unlockfs,
- statfs: reiserfs_statfs,
- remount_fs: reiserfs_remount,
+ .alloc_inode = reiserfs_alloc_inode,
+ .destroy_inode = reiserfs_destroy_inode,
+ .write_inode = reiserfs_write_inode,
+ .dirty_inode = reiserfs_dirty_inode,
+ .delete_inode = reiserfs_delete_inode,
+ .put_super = reiserfs_put_super,
+ .write_super = reiserfs_write_super,
+ .write_super_lockfs = reiserfs_write_super_lockfs,
+ .unlockfs = reiserfs_unlockfs,
+ .statfs = reiserfs_statfs,
+ .remount_fs = reiserfs_remount,
};
static struct export_operations reiserfs_export_ops = {
- encode_fh: reiserfs_encode_fh,
- decode_fh: reiserfs_decode_fh,
- get_parent: reiserfs_get_parent,
- get_dentry: reiserfs_get_dentry,
+ .encode_fh = reiserfs_encode_fh,
+ .decode_fh = reiserfs_decode_fh,
+ .get_parent = reiserfs_get_parent,
+ .get_dentry = reiserfs_get_dentry,
} ;
/* this struct is used in reiserfs_getopt () for containing the value for those
@@ -716,7 +716,7 @@
}
if (*mount_flags & MS_RDONLY) {
- /* remount rean-only */
+ /* remount read-only */
if (s->s_flags & MS_RDONLY)
/* it is read-only already */
return 0;
@@ -732,6 +732,10 @@
journal_mark_dirty(&th, s, SB_BUFFER_WITH_SB (s));
s->s_dirt = 0;
} else {
+ /* remount read-write */
+ if (!(s->s_flags & MS_RDONLY))
+ return 0; /* We are read-write already */
+
REISERFS_SB(s)->s_mount_state = sb_umount_state(rs) ;
s->s_flags &= ~MS_RDONLY ; /* now it is safe to call journal_begin */
journal_begin(&th, s, 10) ;
diff -Nru a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
--- a/include/linux/reiserfs_fs.h Sat Dec 7 14:14:58 2002
+++ b/include/linux/reiserfs_fs.h Sat Dec 7 14:14:58 2002
@@ -2073,13 +2073,14 @@
}
extern inline int reiserfs_new_unf_blocknrs (struct reiserfs_transaction_handle *th,
+ struct inode *inode,
b_blocknr_t *new_blocknrs,
struct path * path, long block)
{
reiserfs_blocknr_hint_t hint = {
.th = th,
.path = path,
- .inode = NULL,
+ .inode = inode,
.block = block,
.formatted_node = 0,
.preallocate = 0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-12-14 21:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-14 21:18 [BK] [PATCH] ReiserFS assorted trivia Hans Reiser
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.