Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
9527cc77
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9527cc77
编写于
6月 21, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge 'for-linus' branch of
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6
上级
1d345dac
d039ba24
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
100 addition
and
201 deletion
+100
-201
fs/jfs/acl.c
fs/jfs/acl.c
+2
-4
fs/jfs/file.c
fs/jfs/file.c
+3
-6
fs/jfs/inode.c
fs/jfs/inode.c
+2
-9
fs/jfs/jfs_debug.c
fs/jfs/jfs_debug.c
+0
-10
fs/jfs/jfs_debug.h
fs/jfs/jfs_debug.h
+11
-4
fs/jfs/jfs_dmap.c
fs/jfs/jfs_dmap.c
+0
-9
fs/jfs/jfs_dtree.c
fs/jfs/jfs_dtree.c
+3
-0
fs/jfs/jfs_extent.c
fs/jfs/jfs_extent.c
+1
-6
fs/jfs/jfs_imap.c
fs/jfs/jfs_imap.c
+1
-5
fs/jfs/jfs_inode.c
fs/jfs/jfs_inode.c
+1
-0
fs/jfs/jfs_inode.h
fs/jfs/jfs_inode.h
+18
-1
fs/jfs/jfs_logmgr.c
fs/jfs/jfs_logmgr.c
+4
-10
fs/jfs/jfs_logmgr.h
fs/jfs/jfs_logmgr.h
+2
-0
fs/jfs/jfs_metapage.c
fs/jfs/jfs_metapage.c
+3
-3
fs/jfs/jfs_metapage.h
fs/jfs/jfs_metapage.h
+4
-2
fs/jfs/jfs_superblock.h
fs/jfs/jfs_superblock.h
+11
-0
fs/jfs/jfs_txnmgr.c
fs/jfs/jfs_txnmgr.c
+1
-39
fs/jfs/jfs_txnmgr.h
fs/jfs/jfs_txnmgr.h
+22
-30
fs/jfs/namei.c
fs/jfs/namei.c
+6
-22
fs/jfs/super.c
fs/jfs/super.c
+1
-36
fs/jfs/symlink.c
fs/jfs/symlink.c
+2
-1
fs/jfs/xattr.c
fs/jfs/xattr.c
+2
-4
未找到文件。
fs/jfs/acl.c
浏览文件 @
9527cc77
...
...
@@ -70,8 +70,7 @@ static struct posix_acl *jfs_get_acl(struct inode *inode, int type)
if
(
!
IS_ERR
(
acl
))
*
p_acl
=
posix_acl_dup
(
acl
);
}
if
(
value
)
kfree
(
value
);
kfree
(
value
);
return
acl
;
}
...
...
@@ -112,8 +111,7 @@ static int jfs_set_acl(struct inode *inode, int type, struct posix_acl *acl)
}
rc
=
__jfs_setxattr
(
inode
,
ea_name
,
value
,
size
,
0
);
out:
if
(
value
)
kfree
(
value
);
kfree
(
value
);
if
(
!
rc
)
{
if
(
*
p_acl
&&
(
*
p_acl
!=
JFS_ACL_NOT_CACHED
))
...
...
fs/jfs/file.c
浏览文件 @
9527cc77
/*
* Copyright (
c
) International Business Machines Corp., 2000-2002
* Portions Copyright (
c
) Christoph Hellwig, 2001-2002
* Copyright (
C
) International Business Machines Corp., 2000-2002
* Portions Copyright (
C
) Christoph Hellwig, 2001-2002
*
* 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
...
...
@@ -19,16 +19,13 @@
#include <linux/fs.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_dmap.h"
#include "jfs_txnmgr.h"
#include "jfs_xattr.h"
#include "jfs_acl.h"
#include "jfs_debug.h"
extern
int
jfs_commit_inode
(
struct
inode
*
,
int
);
extern
void
jfs_truncate
(
struct
inode
*
);
int
jfs_fsync
(
struct
file
*
file
,
struct
dentry
*
dentry
,
int
datasync
)
{
struct
inode
*
inode
=
dentry
->
d_inode
;
...
...
fs/jfs/inode.c
浏览文件 @
9527cc77
...
...
@@ -23,6 +23,7 @@
#include <linux/pagemap.h>
#include <linux/quotaops.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_filsys.h"
#include "jfs_imap.h"
#include "jfs_extent.h"
...
...
@@ -30,14 +31,6 @@
#include "jfs_debug.h"
extern
struct
inode_operations
jfs_dir_inode_operations
;
extern
struct
inode_operations
jfs_file_inode_operations
;
extern
struct
inode_operations
jfs_symlink_inode_operations
;
extern
struct
file_operations
jfs_dir_operations
;
extern
struct
file_operations
jfs_file_operations
;
struct
address_space_operations
jfs_aops
;
extern
int
freeZeroLink
(
struct
inode
*
);
void
jfs_read_inode
(
struct
inode
*
inode
)
{
if
(
diRead
(
inode
))
{
...
...
@@ -136,7 +129,7 @@ void jfs_delete_inode(struct inode *inode)
jfs_info
(
"In jfs_delete_inode, inode = 0x%p"
,
inode
);
if
(
test_cflag
(
COMMIT_Freewmap
,
inode
))
freeZeroL
ink
(
inode
);
jfs_free_zero_l
ink
(
inode
);
diFree
(
inode
);
...
...
fs/jfs/jfs_debug.c
浏览文件 @
9527cc77
...
...
@@ -58,8 +58,6 @@ void dump_mem(char *label, void *data, int length)
static
struct
proc_dir_entry
*
base
;
#ifdef CONFIG_JFS_DEBUG
extern
read_proc_t
jfs_txanchor_read
;
static
int
loglevel_read
(
char
*
page
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
{
...
...
@@ -97,14 +95,6 @@ static int loglevel_write(struct file *file, const char __user *buffer,
}
#endif
#ifdef CONFIG_JFS_STATISTICS
extern
read_proc_t
jfs_lmstats_read
;
extern
read_proc_t
jfs_txstats_read
;
extern
read_proc_t
jfs_xtstat_read
;
extern
read_proc_t
jfs_mpstat_read
;
#endif
static
struct
{
const
char
*
name
;
read_proc_t
*
read_fn
;
...
...
fs/jfs/jfs_debug.h
浏览文件 @
9527cc77
/*
* Copyright (
c
) International Business Machines Corp., 2000-2002
* Portions Copyright (
c
) Christoph Hellwig, 2001-2002
* Copyright (
C
) International Business Machines Corp., 2000-2002
* Portions Copyright (
C
) Christoph Hellwig, 2001-2002
*
* 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
...
...
@@ -31,7 +31,9 @@
* CONFIG_JFS_DEBUG or CONFIG_JFS_STATISTICS is defined
*/
#if defined(CONFIG_PROC_FS) && (defined(CONFIG_JFS_DEBUG) || defined(CONFIG_JFS_STATISTICS))
#define PROC_FS_JFS
#define PROC_FS_JFS
extern
void
jfs_proc_init
(
void
);
extern
void
jfs_proc_clean
(
void
);
#endif
/*
...
...
@@ -65,8 +67,8 @@
extern
int
jfsloglevel
;
/* dump memory contents */
extern
void
dump_mem
(
char
*
label
,
void
*
data
,
int
length
);
extern
int
jfs_txanchor_read
(
char
*
,
char
**
,
off_t
,
int
,
int
*
,
void
*
);
/* information message: e.g., configuration, major event */
#define jfs_info(fmt, arg...) do { \
...
...
@@ -110,6 +112,11 @@ extern void dump_mem(char *label, void *data, int length);
* ----------
*/
#ifdef CONFIG_JFS_STATISTICS
extern
int
jfs_lmstats_read
(
char
*
,
char
**
,
off_t
,
int
,
int
*
,
void
*
);
extern
int
jfs_txstats_read
(
char
*
,
char
**
,
off_t
,
int
,
int
*
,
void
*
);
extern
int
jfs_mpstat_read
(
char
*
,
char
**
,
off_t
,
int
,
int
*
,
void
*
);
extern
int
jfs_xtstat_read
(
char
*
,
char
**
,
off_t
,
int
,
int
*
,
void
*
);
#define INCREMENT(x) ((x)++)
#define DECREMENT(x) ((x)--)
#define HIGHWATERMARK(x,y) ((x) = max((x), (y)))
...
...
fs/jfs/jfs_dmap.c
浏览文件 @
9527cc77
...
...
@@ -272,7 +272,6 @@ int dbMount(struct inode *ipbmap)
int
dbUnmount
(
struct
inode
*
ipbmap
,
int
mounterror
)
{
struct
bmap
*
bmp
=
JFS_SBI
(
ipbmap
->
i_sb
)
->
bmap
;
int
i
;
if
(
!
(
mounterror
||
isReadOnly
(
ipbmap
)))
dbSync
(
ipbmap
);
...
...
@@ -282,14 +281,6 @@ int dbUnmount(struct inode *ipbmap, int mounterror)
*/
truncate_inode_pages
(
ipbmap
->
i_mapping
,
0
);
/*
* Sanity Check
*/
for
(
i
=
0
;
i
<
bmp
->
db_numag
;
i
++
)
if
(
atomic_read
(
&
bmp
->
db_active
[
i
]))
printk
(
KERN_ERR
"dbUnmount: db_active[%d] = %d
\n
"
,
i
,
atomic_read
(
&
bmp
->
db_active
[
i
]));
/* free the memory for the in-memory bmap. */
kfree
(
bmp
);
...
...
fs/jfs/jfs_dtree.c
浏览文件 @
9527cc77
...
...
@@ -2931,6 +2931,9 @@ static void add_missing_indices(struct inode *inode, s64 bn)
ASSERT
(
p
->
header
.
flag
&
BT_LEAF
);
tlck
=
txLock
(
tid
,
inode
,
mp
,
tlckDTREE
|
tlckENTRY
);
if
(
BT_IS_ROOT
(
mp
))
tlck
->
type
|=
tlckBTROOT
;
dtlck
=
(
struct
dt_lock
*
)
&
tlck
->
lock
;
stbl
=
DT_GETSTBL
(
p
);
...
...
fs/jfs/jfs_extent.c
浏览文件 @
9527cc77
...
...
@@ -19,6 +19,7 @@
#include <linux/fs.h>
#include <linux/quotaops.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_superblock.h"
#include "jfs_dmap.h"
#include "jfs_extent.h"
...
...
@@ -33,12 +34,6 @@ static int extBrealloc(struct inode *, s64, s64, s64 *, s64 *);
#endif
static
s64
extRoundDown
(
s64
nb
);
/*
* external references
*/
extern
int
jfs_commit_inode
(
struct
inode
*
,
int
);
#define DPD(a) (printk("(a): %d\n",(a)))
#define DPC(a) (printk("(a): %c\n",(a)))
#define DPL1(a) \
...
...
fs/jfs/jfs_imap.c
浏览文件 @
9527cc77
...
...
@@ -47,6 +47,7 @@
#include <linux/quotaops.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_filsys.h"
#include "jfs_dinode.h"
#include "jfs_dmap.h"
...
...
@@ -68,11 +69,6 @@
#define AG_LOCK(imap,agno) down(&imap->im_aglock[agno])
#define AG_UNLOCK(imap,agno) up(&imap->im_aglock[agno])
/*
* external references
*/
extern
struct
address_space_operations
jfs_aops
;
/*
* forward references
*/
...
...
fs/jfs/jfs_inode.c
浏览文件 @
9527cc77
...
...
@@ -19,6 +19,7 @@
#include <linux/fs.h>
#include <linux/quotaops.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_filsys.h"
#include "jfs_imap.h"
#include "jfs_dinode.h"
...
...
fs/jfs/jfs_inode.h
浏览文件 @
9527cc77
/*
* Copyright (
c
) International Business Machines Corp., 2000-2001
* Copyright (
C
) International Business Machines Corp., 2000-2001
*
* 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
...
...
@@ -19,5 +19,22 @@
#define _H_JFS_INODE
extern
struct
inode
*
ialloc
(
struct
inode
*
,
umode_t
);
extern
int
jfs_fsync
(
struct
file
*
,
struct
dentry
*
,
int
);
extern
void
jfs_read_inode
(
struct
inode
*
);
extern
int
jfs_commit_inode
(
struct
inode
*
,
int
);
extern
int
jfs_write_inode
(
struct
inode
*
,
int
);
extern
void
jfs_delete_inode
(
struct
inode
*
);
extern
void
jfs_dirty_inode
(
struct
inode
*
);
extern
void
jfs_truncate
(
struct
inode
*
);
extern
void
jfs_truncate_nolock
(
struct
inode
*
,
loff_t
);
extern
void
jfs_free_zero_link
(
struct
inode
*
);
extern
struct
dentry
*
jfs_get_parent
(
struct
dentry
*
dentry
);
extern
struct
address_space_operations
jfs_aops
;
extern
struct
inode_operations
jfs_dir_inode_operations
;
extern
struct
file_operations
jfs_dir_operations
;
extern
struct
inode_operations
jfs_file_inode_operations
;
extern
struct
file_operations
jfs_file_operations
;
extern
struct
inode_operations
jfs_symlink_inode_operations
;
extern
struct
dentry_operations
jfs_ci_dentry_operations
;
#endif
/* _H_JFS_INODE */
fs/jfs/jfs_logmgr.c
浏览文件 @
9527cc77
...
...
@@ -71,6 +71,7 @@
#include "jfs_incore.h"
#include "jfs_filsys.h"
#include "jfs_metapage.h"
#include "jfs_superblock.h"
#include "jfs_txnmgr.h"
#include "jfs_debug.h"
...
...
@@ -166,14 +167,6 @@ static LIST_HEAD(jfs_external_logs);
static
struct
jfs_log
*
dummy_log
=
NULL
;
static
DECLARE_MUTEX
(
jfs_log_sem
);
/*
* external references
*/
extern
void
txLazyUnlock
(
struct
tblock
*
tblk
);
extern
int
jfs_stop_threads
;
extern
struct
completion
jfsIOwait
;
extern
int
jfs_tlocks_low
;
/*
* forward references
*/
...
...
@@ -1624,6 +1617,8 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
}
}
assert
(
list_empty
(
&
log
->
cqueue
));
#ifdef CONFIG_JFS_DEBUG
if
(
!
list_empty
(
&
log
->
synclist
))
{
struct
logsyncblk
*
lp
;
...
...
@@ -1638,9 +1633,8 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
dump_mem
(
"orphan tblock"
,
lp
,
sizeof
(
struct
tblock
));
}
// current->state = TASK_INTERRUPTIBLE;
// schedule();
}
#endif
//assert(list_empty(&log->synclist));
clear_bit
(
log_FLUSH
,
&
log
->
flag
);
}
...
...
fs/jfs/jfs_logmgr.h
浏览文件 @
9527cc77
...
...
@@ -507,6 +507,8 @@ extern int lmLogClose(struct super_block *sb);
extern
int
lmLogShutdown
(
struct
jfs_log
*
log
);
extern
int
lmLogInit
(
struct
jfs_log
*
log
);
extern
int
lmLogFormat
(
struct
jfs_log
*
log
,
s64
logAddress
,
int
logSize
);
extern
int
lmGroupCommit
(
struct
jfs_log
*
,
struct
tblock
*
);
extern
int
jfsIOWait
(
void
*
);
extern
void
jfs_flush_journal
(
struct
jfs_log
*
log
,
int
wait
);
extern
void
jfs_syncpt
(
struct
jfs_log
*
log
);
...
...
fs/jfs/jfs_metapage.c
浏览文件 @
9527cc77
...
...
@@ -198,7 +198,7 @@ static void init_once(void *foo, kmem_cache_t *cachep, unsigned long flags)
}
}
static
inline
struct
metapage
*
alloc_metapage
(
int
gfp_mask
)
static
inline
struct
metapage
*
alloc_metapage
(
unsigned
int
gfp_mask
)
{
return
mempool_alloc
(
metapage_mempool
,
gfp_mask
);
}
...
...
@@ -726,12 +726,12 @@ void force_metapage(struct metapage *mp)
page_cache_release
(
page
);
}
extern
void
hold_metapage
(
struct
metapage
*
mp
)
void
hold_metapage
(
struct
metapage
*
mp
)
{
lock_page
(
mp
->
page
);
}
extern
void
put_metapage
(
struct
metapage
*
mp
)
void
put_metapage
(
struct
metapage
*
mp
)
{
if
(
mp
->
count
||
mp
->
nohomeok
)
{
/* Someone else will release this */
...
...
fs/jfs/jfs_metapage.h
浏览文件 @
9527cc77
/*
* Copyright (
c
) International Business Machines Corp., 2000-2002
* Portions Copyright (
c
) Christoph Hellwig, 2001-2002
* Copyright (
C
) International Business Machines Corp., 2000-2002
* Portions Copyright (
C
) Christoph Hellwig, 2001-2002
*
* 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
...
...
@@ -58,6 +58,8 @@ struct metapage {
#define mark_metapage_dirty(mp) set_bit(META_dirty, &(mp)->flag)
/* function prototypes */
extern
int
metapage_init
(
void
);
extern
void
metapage_exit
(
void
);
extern
struct
metapage
*
__get_metapage
(
struct
inode
*
inode
,
unsigned
long
lblock
,
unsigned
int
size
,
int
absolute
,
unsigned
long
new
);
...
...
fs/jfs/jfs_superblock.h
浏览文件 @
9527cc77
...
...
@@ -109,5 +109,16 @@ struct jfs_superblock {
extern
int
readSuper
(
struct
super_block
*
,
struct
buffer_head
**
);
extern
int
updateSuper
(
struct
super_block
*
,
uint
);
extern
void
jfs_error
(
struct
super_block
*
,
const
char
*
,
...);
extern
int
jfs_mount
(
struct
super_block
*
);
extern
int
jfs_mount_rw
(
struct
super_block
*
,
int
);
extern
int
jfs_umount
(
struct
super_block
*
);
extern
int
jfs_umount_rw
(
struct
super_block
*
);
extern
int
jfs_stop_threads
;
extern
struct
completion
jfsIOwait
;
extern
wait_queue_head_t
jfs_IO_thread_wait
;
extern
wait_queue_head_t
jfs_commit_thread_wait
;
extern
wait_queue_head_t
jfs_sync_thread_wait
;
extern
int
jfs_extendfs
(
struct
super_block
*
,
s64
,
int
);
#endif
/*_H_JFS_SUPERBLOCK */
fs/jfs/jfs_txnmgr.c
浏览文件 @
9527cc77
...
...
@@ -42,7 +42,6 @@
* hold on to mp+lock thru update of maps
*/
#include <linux/fs.h>
#include <linux/vmalloc.h>
#include <linux/smp_lock.h>
...
...
@@ -51,6 +50,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_filsys.h"
#include "jfs_metapage.h"
#include "jfs_dinode.h"
...
...
@@ -109,7 +109,6 @@ static int TxLockHWM; /* High water mark for number of txLocks used */
static
int
TxLockVHWM
;
/* Very High water mark */
struct
tlock
*
TxLock
;
/* transaction lock table */
/*
* transaction management lock
*/
...
...
@@ -149,7 +148,6 @@ static inline void TXN_SLEEP_DROP_LOCK(wait_queue_head_t * event)
#define TXN_WAKEUP(event) wake_up_all(event)
/*
* statistics
*/
...
...
@@ -161,16 +159,6 @@ static struct {
int
waitlock
;
/* 4: # of tlock wait */
}
stattx
;
/*
* external references
*/
extern
int
lmGroupCommit
(
struct
jfs_log
*
,
struct
tblock
*
);
extern
int
jfs_commit_inode
(
struct
inode
*
,
int
);
extern
int
jfs_stop_threads
;
extern
struct
completion
jfsIOwait
;
/*
* forward references
*/
...
...
@@ -358,7 +346,6 @@ void txExit(void)
TxBlock
=
NULL
;
}
/*
* NAME: txBegin()
*
...
...
@@ -460,7 +447,6 @@ tid_t txBegin(struct super_block *sb, int flag)
return
t
;
}
/*
* NAME: txBeginAnon()
*
...
...
@@ -503,7 +489,6 @@ void txBeginAnon(struct super_block *sb)
TXN_UNLOCK
();
}
/*
* txEnd()
*
...
...
@@ -592,7 +577,6 @@ void txEnd(tid_t tid)
TXN_WAKEUP
(
&
TxAnchor
.
freewait
);
}
/*
* txLock()
*
...
...
@@ -868,7 +852,6 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
return
NULL
;
}
/*
* NAME: txRelease()
*
...
...
@@ -908,7 +891,6 @@ static void txRelease(struct tblock * tblk)
TXN_UNLOCK
();
}
/*
* NAME: txUnlock()
*
...
...
@@ -996,7 +978,6 @@ static void txUnlock(struct tblock * tblk)
}
}
/*
* txMaplock()
*
...
...
@@ -1069,7 +1050,6 @@ struct tlock *txMaplock(tid_t tid, struct inode *ip, int type)
return
tlck
;
}
/*
* txLinelock()
*
...
...
@@ -1103,8 +1083,6 @@ struct linelock *txLinelock(struct linelock * tlock)
return
linelock
;
}
/*
* transaction commit management
* -----------------------------
...
...
@@ -1373,7 +1351,6 @@ int txCommit(tid_t tid, /* transaction identifier */
return
rc
;
}
/*
* NAME: txLog()
*
...
...
@@ -1437,7 +1414,6 @@ static int txLog(struct jfs_log * log, struct tblock * tblk, struct commit * cd)
return
rc
;
}
/*
* diLog()
*
...
...
@@ -1465,7 +1441,6 @@ static int diLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
if
(
tlck
->
type
&
tlckENTRY
)
{
/* log after-image for logredo(): */
lrd
->
type
=
cpu_to_le16
(
LOG_REDOPAGE
);
// *pxd = mp->cm_pxd;
PXDaddress
(
pxd
,
mp
->
index
);
PXDlength
(
pxd
,
mp
->
logical_size
>>
tblk
->
sb
->
s_blocksize_bits
);
...
...
@@ -1552,7 +1527,6 @@ static int diLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
return
rc
;
}
/*
* dataLog()
*
...
...
@@ -1599,7 +1573,6 @@ static int dataLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
return
0
;
}
/*
* dtLog()
*
...
...
@@ -1639,7 +1612,6 @@ static void dtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
lrd
->
log
.
redopage
.
type
|=
cpu_to_le16
(
LOG_EXTEND
);
else
lrd
->
log
.
redopage
.
type
|=
cpu_to_le16
(
LOG_NEW
);
// *pxd = mp->cm_pxd;
PXDaddress
(
pxd
,
mp
->
index
);
PXDlength
(
pxd
,
mp
->
logical_size
>>
tblk
->
sb
->
s_blocksize_bits
);
...
...
@@ -1704,7 +1676,6 @@ static void dtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
return
;
}
/*
* xtLog()
*
...
...
@@ -1760,7 +1731,6 @@ static void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
* applying the after-image to the meta-data page.
*/
lrd
->
type
=
cpu_to_le16
(
LOG_REDOPAGE
);
// *page_pxd = mp->cm_pxd;
PXDaddress
(
page_pxd
,
mp
->
index
);
PXDlength
(
page_pxd
,
mp
->
logical_size
>>
tblk
->
sb
->
s_blocksize_bits
);
...
...
@@ -2093,7 +2063,6 @@ static void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
return
;
}
/*
* mapLog()
*
...
...
@@ -2180,7 +2149,6 @@ void mapLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
}
}
/*
* txEA()
*
...
...
@@ -2233,7 +2201,6 @@ void txEA(tid_t tid, struct inode *ip, dxd_t * oldea, dxd_t * newea)
}
}
/*
* txForce()
*
...
...
@@ -2300,7 +2267,6 @@ void txForce(struct tblock * tblk)
}
}
/*
* txUpdateMap()
*
...
...
@@ -2437,7 +2403,6 @@ static void txUpdateMap(struct tblock * tblk)
}
}
/*
* txAllocPMap()
*
...
...
@@ -2509,7 +2474,6 @@ static void txAllocPMap(struct inode *ip, struct maplock * maplock,
}
}
/*
* txFreeMap()
*
...
...
@@ -2611,7 +2575,6 @@ void txFreeMap(struct inode *ip,
}
}
/*
* txFreelock()
*
...
...
@@ -2652,7 +2615,6 @@ void txFreelock(struct inode *ip)
TXN_UNLOCK
();
}
/*
* txAbort()
*
...
...
fs/jfs/jfs_txnmgr.h
浏览文件 @
9527cc77
...
...
@@ -285,34 +285,26 @@ struct commit {
/*
* external declarations
*/
extern
struct
tlock
*
txLock
(
tid_t
tid
,
struct
inode
*
ip
,
struct
metapage
*
mp
,
int
flag
);
extern
struct
tlock
*
txMaplock
(
tid_t
tid
,
struct
inode
*
ip
,
int
flag
);
extern
int
txCommit
(
tid_t
tid
,
int
nip
,
struct
inode
**
iplist
,
int
flag
);
extern
tid_t
txBegin
(
struct
super_block
*
sb
,
int
flag
);
extern
void
txBeginAnon
(
struct
super_block
*
sb
);
extern
void
txEnd
(
tid_t
tid
);
extern
void
txAbort
(
tid_t
tid
,
int
dirty
);
extern
struct
linelock
*
txLinelock
(
struct
linelock
*
tlock
);
extern
void
txFreeMap
(
struct
inode
*
ip
,
struct
maplock
*
maplock
,
struct
tblock
*
tblk
,
int
maptype
);
extern
void
txEA
(
tid_t
tid
,
struct
inode
*
ip
,
dxd_t
*
oldea
,
dxd_t
*
newea
);
extern
void
txFreelock
(
struct
inode
*
ip
);
extern
int
lmLog
(
struct
jfs_log
*
log
,
struct
tblock
*
tblk
,
struct
lrd
*
lrd
,
struct
tlock
*
tlck
);
extern
void
txQuiesce
(
struct
super_block
*
sb
);
extern
void
txResume
(
struct
super_block
*
sb
);
extern
int
jfs_tlocks_low
;
extern
int
txInit
(
void
);
extern
void
txExit
(
void
);
extern
struct
tlock
*
txLock
(
tid_t
,
struct
inode
*
,
struct
metapage
*
,
int
);
extern
struct
tlock
*
txMaplock
(
tid_t
,
struct
inode
*
,
int
);
extern
int
txCommit
(
tid_t
,
int
,
struct
inode
**
,
int
);
extern
tid_t
txBegin
(
struct
super_block
*
,
int
);
extern
void
txBeginAnon
(
struct
super_block
*
);
extern
void
txEnd
(
tid_t
);
extern
void
txAbort
(
tid_t
,
int
);
extern
struct
linelock
*
txLinelock
(
struct
linelock
*
);
extern
void
txFreeMap
(
struct
inode
*
,
struct
maplock
*
,
struct
tblock
*
,
int
);
extern
void
txEA
(
tid_t
,
struct
inode
*
,
dxd_t
*
,
dxd_t
*
);
extern
void
txFreelock
(
struct
inode
*
);
extern
int
lmLog
(
struct
jfs_log
*
,
struct
tblock
*
,
struct
lrd
*
,
struct
tlock
*
);
extern
void
txQuiesce
(
struct
super_block
*
);
extern
void
txResume
(
struct
super_block
*
);
extern
void
txLazyUnlock
(
struct
tblock
*
);
extern
int
jfs_lazycommit
(
void
*
);
extern
int
jfs_sync
(
void
*
);
#endif
/* _H_JFS_TXNMGR */
fs/jfs/namei.c
浏览文件 @
9527cc77
...
...
@@ -31,20 +31,9 @@
#include "jfs_acl.h"
#include "jfs_debug.h"
extern
struct
inode_operations
jfs_file_inode_operations
;
extern
struct
inode_operations
jfs_symlink_inode_operations
;
extern
struct
file_operations
jfs_file_operations
;
extern
struct
address_space_operations
jfs_aops
;
extern
int
jfs_fsync
(
struct
file
*
,
struct
dentry
*
,
int
);
extern
void
jfs_truncate_nolock
(
struct
inode
*
,
loff_t
);
extern
int
jfs_init_acl
(
struct
inode
*
,
struct
inode
*
);
/*
* forward references
*/
struct
inode_operations
jfs_dir_inode_operations
;
struct
file_operations
jfs_dir_operations
;
struct
dentry_operations
jfs_ci_dentry_operations
;
static
s64
commitZeroLink
(
tid_t
,
struct
inode
*
);
...
...
@@ -655,7 +644,7 @@ static s64 commitZeroLink(tid_t tid, struct inode *ip)
/*
* NAME:
freeZeroL
ink()
* NAME:
jfs_free_zero_l
ink()
*
* FUNCTION: for non-directory, called by iClose(),
* free resources of a file from cache and WORKING map
...
...
@@ -663,15 +652,12 @@ static s64 commitZeroLink(tid_t tid, struct inode *ip)
* while associated with a pager object,
*
* PARAMETER: ip - pointer to inode of file.
*
* RETURN: 0 -ok
*/
int
freeZeroL
ink
(
struct
inode
*
ip
)
void
jfs_free_zero_l
ink
(
struct
inode
*
ip
)
{
int
rc
=
0
;
int
type
;
jfs_info
(
"
freeZeroL
ink: ip = 0x%p"
,
ip
);
jfs_info
(
"
jfs_free_zero_l
ink: ip = 0x%p"
,
ip
);
/* return if not reg or symbolic link or if size is
* already ok.
...
...
@@ -684,10 +670,10 @@ int freeZeroLink(struct inode *ip)
case
S_IFLNK
:
/* if its contained in inode nothing to do */
if
(
ip
->
i_size
<
IDATASIZE
)
return
0
;
return
;
break
;
default:
return
0
;
return
;
}
/*
...
...
@@ -737,9 +723,7 @@ int freeZeroLink(struct inode *ip)
* free xtree/data blocks from working block map;
*/
if
(
ip
->
i_size
)
rc
=
xtTruncate
(
0
,
ip
,
0
,
COMMIT_WMAP
);
return
rc
;
xtTruncate
(
0
,
ip
,
0
,
COMMIT_WMAP
);
}
/*
...
...
fs/jfs/super.c
浏览文件 @
9527cc77
...
...
@@ -28,6 +28,7 @@
#include "jfs_incore.h"
#include "jfs_filsys.h"
#include "jfs_inode.h"
#include "jfs_metapage.h"
#include "jfs_superblock.h"
#include "jfs_dmap.h"
...
...
@@ -62,37 +63,6 @@ module_param(jfsloglevel, int, 0644);
MODULE_PARM_DESC
(
jfsloglevel
,
"Specify JFS loglevel (0, 1 or 2)"
);
#endif
/*
* External declarations
*/
extern
int
jfs_mount
(
struct
super_block
*
);
extern
int
jfs_mount_rw
(
struct
super_block
*
,
int
);
extern
int
jfs_umount
(
struct
super_block
*
);
extern
int
jfs_umount_rw
(
struct
super_block
*
);
extern
int
jfsIOWait
(
void
*
);
extern
int
jfs_lazycommit
(
void
*
);
extern
int
jfs_sync
(
void
*
);
extern
void
jfs_read_inode
(
struct
inode
*
inode
);
extern
void
jfs_dirty_inode
(
struct
inode
*
inode
);
extern
void
jfs_delete_inode
(
struct
inode
*
inode
);
extern
int
jfs_write_inode
(
struct
inode
*
inode
,
int
wait
);
extern
struct
dentry
*
jfs_get_parent
(
struct
dentry
*
dentry
);
extern
int
jfs_extendfs
(
struct
super_block
*
,
s64
,
int
);
extern
struct
dentry_operations
jfs_ci_dentry_operations
;
#ifdef PROC_FS_JFS
/* see jfs_debug.h */
extern
void
jfs_proc_init
(
void
);
extern
void
jfs_proc_clean
(
void
);
#endif
extern
wait_queue_head_t
jfs_IO_thread_wait
;
extern
wait_queue_head_t
jfs_commit_thread_wait
;
extern
wait_queue_head_t
jfs_sync_thread_wait
;
static
void
jfs_handle_error
(
struct
super_block
*
sb
)
{
struct
jfs_sb_info
*
sbi
=
JFS_SBI
(
sb
);
...
...
@@ -593,11 +563,6 @@ static struct file_system_type jfs_fs_type = {
.
fs_flags
=
FS_REQUIRES_DEV
,
};
extern
int
metapage_init
(
void
);
extern
int
txInit
(
void
);
extern
void
txExit
(
void
);
extern
void
metapage_exit
(
void
);
static
void
init_once
(
void
*
foo
,
kmem_cache_t
*
cachep
,
unsigned
long
flags
)
{
struct
jfs_inode_info
*
jfs_ip
=
(
struct
jfs_inode_info
*
)
foo
;
...
...
fs/jfs/symlink.c
浏览文件 @
9527cc77
/*
* Copyright (
c
) Christoph Hellwig, 2001-2002
* Copyright (
C
) Christoph Hellwig, 2001-2002
*
* 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
...
...
@@ -19,6 +19,7 @@
#include <linux/fs.h>
#include <linux/namei.h>
#include "jfs_incore.h"
#include "jfs_inode.h"
#include "jfs_xattr.h"
static
int
jfs_follow_link
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
...
...
fs/jfs/xattr.c
浏览文件 @
9527cc77
...
...
@@ -946,8 +946,7 @@ int __jfs_setxattr(struct inode *inode, const char *name, const void *value,
out:
up_write
(
&
JFS_IP
(
inode
)
->
xattr_sem
);
if
(
os2name
)
kfree
(
os2name
);
kfree
(
os2name
);
return
rc
;
}
...
...
@@ -1042,8 +1041,7 @@ ssize_t __jfs_getxattr(struct inode *inode, const char *name, void *data,
out:
up_read
(
&
JFS_IP
(
inode
)
->
xattr_sem
);
if
(
os2name
)
kfree
(
os2name
);
kfree
(
os2name
);
return
size
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录