Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
6e5f0131
Commit
6e5f0131
authored
Feb 02, 2003
by
Dave Kleikamp
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux.bkbits.net/linux-2.5
into hostme.bitkeeper.com:/ua/repos/j/jfs/linux-2.5
parents
c92cacc2
94a9de9c
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
365 additions
and
490 deletions
+365
-490
fs/jfs/inode.c
fs/jfs/inode.c
+12
-13
fs/jfs/jfs_btree.h
fs/jfs/jfs_btree.h
+1
-4
fs/jfs/jfs_debug.h
fs/jfs/jfs_debug.h
+42
-22
fs/jfs/jfs_dmap.c
fs/jfs/jfs_dmap.c
+8
-10
fs/jfs/jfs_dtree.c
fs/jfs/jfs_dtree.c
+37
-49
fs/jfs/jfs_imap.c
fs/jfs/jfs_imap.c
+23
-35
fs/jfs/jfs_inode.c
fs/jfs/jfs_inode.c
+3
-3
fs/jfs/jfs_logmgr.c
fs/jfs/jfs_logmgr.c
+53
-82
fs/jfs/jfs_metapage.c
fs/jfs/jfs_metapage.c
+13
-19
fs/jfs/jfs_mount.c
fs/jfs/jfs_mount.c
+22
-34
fs/jfs/jfs_txnmgr.c
fs/jfs/jfs_txnmgr.c
+67
-87
fs/jfs/jfs_umount.c
fs/jfs/jfs_umount.c
+2
-6
fs/jfs/jfs_unicode.c
fs/jfs/jfs_unicode.c
+3
-9
fs/jfs/jfs_xtree.c
fs/jfs/jfs_xtree.c
+22
-43
fs/jfs/namei.c
fs/jfs/namei.c
+39
-48
fs/jfs/super.c
fs/jfs/super.c
+18
-26
No files found.
fs/jfs/inode.c
View file @
6e5f0131
...
...
@@ -85,7 +85,7 @@ int jfs_commit_inode(struct inode *inode, int wait)
tid_t
tid
;
static
int
noisy
=
5
;
j
FYI
(
1
,
(
"In jfs_commit_inode, inode = 0x%p
\n
"
,
inode
)
);
j
fs_info
(
"In jfs_commit_inode, inode = 0x%p"
,
inode
);
/*
* Don't commit if inode has been committed since last being
...
...
@@ -100,9 +100,9 @@ int jfs_commit_inode(struct inode *inode, int wait)
* partitions and may think inode is dirty
*/
if
(
!
special_file
(
inode
->
i_mode
)
&&
noisy
)
{
j
ERROR
(
1
,
(
"jfs_commit_inode(0x%p) called on "
"read-only volume
\n
"
,
inode
)
);
j
ERROR
(
1
,
(
"Is remount racy?
\n
"
)
);
j
fs_err
(
"jfs_commit_inode(0x%p) called on "
"read-only volume
"
,
inode
);
j
fs_err
(
"Is remount racy?"
);
noisy
--
;
}
return
0
;
...
...
@@ -128,13 +128,13 @@ void jfs_write_inode(struct inode *inode, int wait)
return
;
if
(
jfs_commit_inode
(
inode
,
wait
))
{
j
ERROR
(
1
,
(
"jfs_write_inode: jfs_commit_inode failed!
\n
"
)
);
j
fs_err
(
"jfs_write_inode: jfs_commit_inode failed!"
);
}
}
void
jfs_delete_inode
(
struct
inode
*
inode
)
{
j
FYI
(
1
,
(
"In jfs_delete_inode, inode = 0x%p
\n
"
,
inode
)
);
j
fs_info
(
"In jfs_delete_inode, inode = 0x%p"
,
inode
);
if
(
test_cflag
(
COMMIT_Freewmap
,
inode
))
freeZeroLink
(
inode
);
...
...
@@ -153,9 +153,8 @@ void jfs_dirty_inode(struct inode *inode)
/* kernel allows writes to devices on read-only
* partitions and may try to mark inode dirty
*/
jERROR
(
1
,
(
"jfs_dirty_inode called on "
"read-only volume
\n
"
));
jERROR
(
1
,
(
"Is remount racy?
\n
"
));
jfs_err
(
"jfs_dirty_inode called on read-only volume"
);
jfs_err
(
"Is remount racy?"
);
noisy
--
;
}
return
;
...
...
@@ -302,7 +301,7 @@ static int jfs_readpages(struct file *file, struct address_space *mapping,
static
int
jfs_prepare_write
(
struct
file
*
file
,
struct
page
*
page
,
unsigned
from
,
unsigned
to
)
{
return
block
_prepare_write
(
page
,
from
,
to
,
jfs_get_block
);
return
nobh
_prepare_write
(
page
,
from
,
to
,
jfs_get_block
);
}
static
sector_t
jfs_bmap
(
struct
address_space
*
mapping
,
sector_t
block
)
...
...
@@ -327,7 +326,7 @@ struct address_space_operations jfs_aops = {
.
writepages
=
jfs_writepages
,
.
sync_page
=
block_sync_page
,
.
prepare_write
=
jfs_prepare_write
,
.
commit_write
=
generic
_commit_write
,
.
commit_write
=
nobh
_commit_write
,
.
bmap
=
jfs_bmap
,
.
direct_IO
=
jfs_direct_IO
,
};
...
...
@@ -378,9 +377,9 @@ void jfs_truncate_nolock(struct inode *ip, loff_t length)
void
jfs_truncate
(
struct
inode
*
ip
)
{
j
FYI
(
1
,
(
"jfs_truncate: size = 0x%lx
\n
"
,
(
ulong
)
ip
->
i_size
)
);
j
fs_info
(
"jfs_truncate: size = 0x%lx"
,
(
ulong
)
ip
->
i_size
);
block_truncate_page
(
ip
->
i_mapping
,
ip
->
i_size
,
jfs_get_block
);
nobh_truncate_page
(
ip
->
i_mapping
,
ip
->
i_size
);
IWRITE_LOCK
(
ip
);
jfs_truncate_nolock
(
ip
,
ip
->
i_size
);
...
...
fs/jfs/jfs_btree.h
View file @
6e5f0131
...
...
@@ -71,19 +71,16 @@ struct btpage {
MP = (struct metapage *)&JFS_IP(IP)->bxflag;\
P = (TYPE *)&JFS_IP(IP)->ROOT;\
RC = 0;\
jEVENT(0,("%d BT_GETPAGE returning root\n", __LINE__));\
}\
else\
{\
jEVENT(0,("%d BT_GETPAGE reading block %d\n", __LINE__,\
(int)BN));\
MP = read_metapage((IP), BN, SIZE, 1);\
if (MP) {\
RC = 0;\
P = (MP)->data;\
} else {\
P = NULL;\
j
ERROR(1,("bread failed!\n")
);\
j
fs_err("bread failed!"
);\
RC = EIO;\
}\
}\
...
...
fs/jfs/jfs_debug.h
View file @
6e5f0131
...
...
@@ -41,13 +41,13 @@
/* kgdb stuff */
#define assert(p) KERNEL_ASSERT(#p, p)
#else
#define assert(p)
{
\
if (!(p))
\
{
\
printk("assert(%s)\n",#p);
\
BUG();\
}\
}
#define assert(p)
do {
\
if (!(p)) {
\
printk(KERN_CRIT "BUG at %s:%d assert(%s)\n",
\
__FILE__, __LINE__, #p);
\
BUG();
\
}
\
}
while (0)
#endif
/*
...
...
@@ -57,33 +57,53 @@ if (!(p))\
#ifdef CONFIG_JFS_DEBUG
#define ASSERT(p) assert(p)
/* printk verbosity */
#define JFS_LOGLEVEL_ERR 1
#define JFS_LOGLEVEL_WARN 2
#define JFS_LOGLEVEL_DEBUG 3
#define JFS_LOGLEVEL_INFO 4
extern
int
jfsloglevel
;
/* dump memory contents */
extern
void
dump_mem
(
char
*
label
,
void
*
data
,
int
length
);
extern
int
jfsloglevel
;
/* information message: e.g., configuration, major event */
#define jFYI(button, prspec) \
do { if (button && jfsloglevel > 1) printk prspec; } while (0)
#define jfs_info(fmt, arg...) do { \
if (jfsloglevel >= JFS_LOGLEVEL_INFO) \
printk(KERN_INFO fmt "\n", ## arg); \
} while (0)
/* error event message: e.g., i/o error */
extern
int
jfsERROR
;
#define jERROR(button, prspec) \
do { if (button && jfsloglevel > 0) { printk prspec; } } while (0)
/* debug message: ad hoc */
#define jfs_debug(fmt, arg...) do { \
if (jfsloglevel >= JFS_LOGLEVEL_DEBUG) \
printk(KERN_DEBUG fmt "\n", ## arg); \
} while (0)
/* warn message: */
#define jfs_warn(fmt, arg...) do { \
if (jfsloglevel >= JFS_LOGLEVEL_WARN) \
printk(KERN_WARNING fmt "\n", ## arg); \
} while (0)
/* debug event message: */
#define jEVENT(button,prspec) \
do { if (button) printk prspec; } while (0)
/* error event message: e.g., i/o error */
#define jfs_err(fmt, arg...) do { \
if (jfsloglevel >= JFS_LOGLEVEL_ERR) \
printk(KERN_ERR "%s:%d " fmt "\n", \
__FILE__, __LINE__, ## arg); \
} while (0)
/*
* debug OFF
* ---------
*/
#else
/* CONFIG_JFS_DEBUG */
#define dump_mem(label,data,length)
#define ASSERT(p)
#define jEVENT(button,prspec)
#define jERROR(button,prspec)
#define jFYI(button,prspec)
#define dump_mem(label,data,length) do {} while (0)
#define ASSERT(p) do {} while (0)
#define jfs_info(fmt, arg...) do {} while (0)
#define jfs_debug(fmt, arg...) do {} while (0)
#define jfs_warn(fmt, arg...) do {} while (0)
#define jfs_err(fmt, arg...) do {} while (0)
#endif
/* CONFIG_JFS_DEBUG */
/*
...
...
fs/jfs/jfs_dmap.c
View file @
6e5f0131
...
...
@@ -314,7 +314,7 @@ int dbSync(struct inode *ipbmap)
BMAPBLKNO
<<
JFS_SBI
(
ipbmap
->
i_sb
)
->
l2nbperpage
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
j
ERROR
(
1
,(
"dbSync: read_metapage failed!
\n
"
)
);
j
fs_err
(
"dbSync: read_metapage failed!"
);
return
(
EIO
);
}
/* copy the in-memory version of the bmap to the on-disk version */
...
...
@@ -1444,10 +1444,10 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
/* assert(!(rc == ENOSPC && bmp->db_agfree[agno] == bmp->db_agsize)); */
if
((
rc
==
ENOSPC
)
&&
(
bmp
->
db_agfree
[
agno
]
==
bmp
->
db_agsize
))
{
j
ERROR
(
1
,
(
"dbAllocAG: removed assert, but still need to debug here
\n
blkno = 0x%Lx, nblocks = 0x%Lx
\n
"
,
j
fs_err
(
"dbAllocAG: removed assert, but still need to "
"debug here
\n
blkno = 0x%Lx, nblocks = 0x%Lx
"
,
(
unsigned
long
long
)
blkno
,
(
unsigned
long
long
)
nblocks
)
)
;
(
unsigned
long
long
)
nblocks
);
}
return
(
rc
);
}
...
...
@@ -1829,8 +1829,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
* to indicate that we have leaked blocks.
*/
fsDirty
();
/* !!! */
jERROR
(
1
,
(
"dbAllocCtl: I/O Error: Block Leakage.
\n
"
));
jfs_err
(
"dbAllocCtl: I/O Error: Block Leakage."
);
continue
;
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
...
@@ -1843,7 +1842,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
*/
release_metapage
(
mp
);
fsDirty
();
/* !!! */
j
ERROR
(
1
,
(
"dbAllocCtl: Block Leakage.
\n
"
)
);
j
fs_err
(
"dbAllocCtl: Block Leakage."
);
continue
;
}
...
...
@@ -3276,9 +3275,8 @@ int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks)
newsize
=
blkno
+
nblocks
;
jEVENT
(
0
,
(
"dbExtendFS: blkno:%Ld nblocks:%Ld newsize:%Ld
\n
"
,
(
long
long
)
blkno
,
(
long
long
)
nblocks
,
(
long
long
)
newsize
));
jfs_info
(
"dbExtendFS: blkno:%Ld nblocks:%Ld newsize:%Ld"
,
(
long
long
)
blkno
,
(
long
long
)
nblocks
,
(
long
long
)
newsize
);
/*
* initialize bmap control page.
...
...
fs/jfs/jfs_dtree.c
View file @
6e5f0131
...
...
@@ -130,7 +130,7 @@ struct dtsplit {
if (((P)->header.nextindex > (((BN)==0)?DTROOTMAXSLOT:(P)->header.maxslot)) ||\
((BN) && ((P)->header.maxslot > DTPAGEMAXSLOT)))\
{\
j
ERROR(1,("DT_GETPAGE: dtree page corrupt\n")
);\
j
fs_err("DT_GETPAGE: dtree page corrupt"
);\
BT_PUTPAGE(MP);\
updateSuper((IP)->i_sb, FM_DIRTY);\
MP = NULL;\
...
...
@@ -241,15 +241,14 @@ static struct dir_table_slot *find_index(struct inode *ip, u32 index,
if
(
index
<
2
)
{
if
(
maxWarnings
)
{
jERROR
(
1
,
(
"find_entry called with index = %d
\n
"
,
index
));
jfs_warn
(
"find_entry called with index = %d"
,
index
);
maxWarnings
--
;
}
return
0
;
}
if
(
index
>=
jfs_ip
->
next_index
)
{
j
FYI
(
1
,
(
"find_entry called with index >= next_index
\n
"
)
);
j
fs_warn
(
"find_entry called with index >= next_index"
);
return
0
;
}
...
...
@@ -274,8 +273,7 @@ static struct dir_table_slot *find_index(struct inode *ip, u32 index,
*
mp
=
read_index_page
(
ip
,
blkno
);
}
if
(
*
mp
==
0
)
{
jERROR
(
1
,
(
"free_index: error reading directory table
\n
"
));
jfs_err
(
"free_index: error reading directory table"
);
return
0
;
}
...
...
@@ -336,8 +334,8 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
ASSERT
(
DO_INDEX
(
ip
));
if
(
jfs_ip
->
next_index
<
2
)
{
j
ERROR
(
1
,
(
"next_index = %d. Please fix this!
\n
"
,
jfs_ip
->
next_index
)
)
;
j
fs_warn
(
"add_index: next_index = %d. Resetting!
"
,
jfs_ip
->
next_index
);
jfs_ip
->
next_index
=
2
;
}
...
...
@@ -386,14 +384,14 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
if
((
rc
=
xtInsert
(
tid
,
ip
,
0
,
0
,
sbi
->
nbperpage
,
&
xaddr
,
0
)))
{
j
FYI
(
1
,
(
"add_index: xtInsert failed!
\n
"
)
);
j
fs_warn
(
"add_index: xtInsert failed!"
);
return
-
1
;
}
ip
->
i_size
=
PSIZE
;
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
sbi
->
nbperpage
);
if
((
mp
=
read_index_page
(
ip
,
0
))
==
0
)
{
j
ERROR
(
1
,
(
"add_index: get_metapage failed!
\n
"
)
);
j
fs_err
(
"add_index: get_metapage failed!"
);
xtTruncate
(
tid
,
ip
,
0
,
COMMIT_PWMAP
);
return
-
1
;
}
...
...
@@ -428,7 +426,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
if
((
rc
=
xtInsert
(
tid
,
ip
,
0
,
blkno
,
sbi
->
nbperpage
,
&
xaddr
,
0
)))
{
j
FYI
(
1
,
(
"add_index: xtInsert failed!
\n
"
)
);
j
fs_warn
(
"add_index: xtInsert failed!"
);
jfs_ip
->
next_index
--
;
return
-
1
;
}
...
...
@@ -443,7 +441,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
mp
=
read_index_page
(
ip
,
blkno
);
if
(
mp
==
0
)
{
j
ERROR
(
1
,
(
"add_index: get/read_metapage failed!
\n
"
)
);
j
fs_err
(
"add_index: get/read_metapage failed!"
);
return
-
1
;
}
...
...
@@ -751,7 +749,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
/* Something's corrupted, mark filesytem dirty so
* chkdsk will fix it.
*/
j
ERROR
(
1
,
(
"stack overrun in dtSearch!
\n
"
)
);
j
fs_err
(
"stack overrun in dtSearch!"
);
updateSuper
(
sb
,
FM_DIRTY
);
rc
=
EIO
;
goto
out
;
...
...
@@ -1162,7 +1160,7 @@ static int dtSplitUp(tid_t tid,
break
;
default:
j
ERROR
(
2
,
(
"dtSplitUp(): UFO!
\n
"
)
);
j
fs_err
(
"dtSplitUp(): UFO!"
);
break
;
}
...
...
@@ -1313,8 +1311,7 @@ static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
if
(
rmp
==
NULL
)
return
EIO
;
jEVENT
(
0
,
(
"dtSplitPage: ip:0x%p smp:0x%p rmp:0x%p
\n
"
,
ip
,
smp
,
rmp
));
jfs_info
(
"dtSplitPage: ip:0x%p smp:0x%p rmp:0x%p"
,
ip
,
smp
,
rmp
);
BT_MARK_DIRTY
(
rmp
,
ip
);
/*
...
...
@@ -1420,9 +1417,8 @@ static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
* acquire a transaction lock on the next page
*/
tlck
=
txLock
(
tid
,
ip
,
mp
,
tlckDTREE
|
tlckRELINK
);
jEVENT
(
0
,
(
"dtSplitPage: tlck = 0x%p, ip = 0x%p, mp=0x%p
\n
"
,
tlck
,
ip
,
mp
));
jfs_info
(
"dtSplitPage: tlck = 0x%p, ip = 0x%p, mp=0x%p"
,
tlck
,
ip
,
mp
);
dtlck
=
(
struct
dt_lock
*
)
&
tlck
->
lock
;
/* linelock header of previous right sibling page */
...
...
@@ -1564,7 +1560,6 @@ static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
lengthPXD
(
pxd
));
jEVENT
(
0
,
(
"dtSplitPage: ip:0x%p sp:0x%p rp:0x%p
\n
"
,
ip
,
sp
,
rp
));
return
0
;
}
...
...
@@ -1665,8 +1660,7 @@ static int dtExtendPage(tid_t tid,
*/
sp
->
header
.
self
=
*
pxd
;
jEVENT
(
0
,
(
"dtExtendPage: ip:0x%p smp:0x%p sp:0x%p
\n
"
,
ip
,
smp
,
sp
));
jfs_info
(
"dtExtendPage: ip:0x%p smp:0x%p sp:0x%p"
,
ip
,
smp
,
sp
);
BT_MARK_DIRTY
(
smp
,
ip
);
/*
...
...
@@ -1804,10 +1798,6 @@ static int dtExtendPage(tid_t tid,
((
JFS_IP
(
ip
)
->
acl
.
flag
&
DXD_EXTENT
)
?
lengthDXD
(
&
JFS_IP
(
ip
)
->
acl
)
:
0
));
jEVENT
(
0
,
(
"dtExtendPage: ip:0x%p smp:0x%p sp:0x%p
\n
"
,
ip
,
smp
,
sp
));
DT_PUTPAGE
(
pmp
);
return
0
;
}
...
...
@@ -2401,9 +2391,9 @@ int dtRelocate(tid_t tid, struct inode *ip, s64 lmxaddr, pxd_t * opxd,
oxaddr
=
addressPXD
(
opxd
);
xlen
=
lengthPXD
(
opxd
);
j
EVENT
(
0
,
(
"dtRelocate: lmxaddr:%Ld xaddr:%Ld:%Ld xlen:%d
\n
"
,
j
fs_info
(
"dtRelocate: lmxaddr:%Ld xaddr:%Ld:%Ld xlen:%d
"
,
(
long
long
)
lmxaddr
,
(
long
long
)
oxaddr
,
(
long
long
)
nxaddr
,
xlen
)
)
;
xlen
);
/*
* 1. get the internal parent dtpage covering
...
...
@@ -2415,7 +2405,7 @@ int dtRelocate(tid_t tid, struct inode *ip, s64 lmxaddr, pxd_t * opxd,
/* retrieve search result */
DT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
pmp
,
pp
,
index
);
j
EVENT
(
0
,
(
"dtRelocate: parent router entry validated.
\n
"
)
);
j
fs_info
(
"dtRelocate: parent router entry validated."
);
/*
* 2. relocate the target dtpage
...
...
@@ -2521,7 +2511,7 @@ int dtRelocate(tid_t tid, struct inode *ip, s64 lmxaddr, pxd_t * opxd,
#endif
/* _STILL_TO_PORT */
/* unpin the relocated page */
DT_PUTPAGE
(
mp
);
j
EVENT
(
0
,
(
"dtRelocate: target dtpage relocated.
\n
"
)
);
j
fs_info
(
"dtRelocate: target dtpage relocated."
);
/* the moved extent is dtpage, then a LOG_NOREDOPAGE log rec
* needs to be written (in logredo(), the LOG_NOREDOPAGE log rec
...
...
@@ -2549,7 +2539,7 @@ int dtRelocate(tid_t tid, struct inode *ip, s64 lmxaddr, pxd_t * opxd,
* acquire tlck for the parent entry covering the target dtpage;
* write LOG_REDOPAGE to apply after image only;
*/
j
EVENT
(
0
,
(
"dtRelocate: update parent router entry.
\n
"
)
);
j
fs_info
(
"dtRelocate: update parent router entry."
);
tlck
=
txLock
(
tid
,
ip
,
pmp
,
tlckDTREE
|
tlckENTRY
);
dtlck
=
(
struct
dt_lock
*
)
&
tlck
->
lock
;
lv
=
&
dtlck
->
lv
[
dtlck
->
index
];
...
...
@@ -2708,9 +2698,8 @@ static int dtRelink(tid_t tid, struct inode *ip, dtpage_t * p)
* action: update prev pointer;
*/
tlck
=
txLock
(
tid
,
ip
,
mp
,
tlckDTREE
|
tlckRELINK
);
jEVENT
(
0
,
(
"dtRelink nextbn: tlck = 0x%p, ip = 0x%p, mp=0x%p
\n
"
,
tlck
,
ip
,
mp
));
jfs_info
(
"dtRelink nextbn: tlck = 0x%p, ip = 0x%p, mp=0x%p"
,
tlck
,
ip
,
mp
);
dtlck
=
(
struct
dt_lock
*
)
&
tlck
->
lock
;
/* linelock header */
...
...
@@ -2738,9 +2727,8 @@ static int dtRelink(tid_t tid, struct inode *ip, dtpage_t * p)
* action: update next pointer;
*/
tlck
=
txLock
(
tid
,
ip
,
mp
,
tlckDTREE
|
tlckRELINK
);
jEVENT
(
0
,
(
"dtRelink prevbn: tlck = 0x%p, ip = 0x%p, mp=0x%p
\n
"
,
tlck
,
ip
,
mp
));
jfs_info
(
"dtRelink prevbn: tlck = 0x%p, ip = 0x%p, mp=0x%p"
,
tlck
,
ip
,
mp
);
dtlck
=
(
struct
dt_lock
*
)
&
tlck
->
lock
;
/* linelock header */
...
...
@@ -3012,8 +3000,8 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
}
if
(
dirtab_slot
.
flag
==
DIR_INDEX_FREE
)
{
if
(
loop_count
++
>
JFS_IP
(
ip
)
->
next_index
)
{
j
ERROR
(
1
,
(
"jfs_readdir detected "
"infinite loop!
\n
"
)
);
j
fs_err
(
"jfs_readdir detected "
"infinite loop!
"
);
filp
->
f_pos
=
DIREND
;
return
0
;
}
...
...
@@ -3032,7 +3020,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
return
0
;
}
if
(
p
->
header
.
flag
&
BT_INTERNAL
)
{
j
ERROR
(
1
,(
"jfs_readdir: bad index table
\n
"
)
);
j
fs_err
(
"jfs_readdir: bad index table"
);
DT_PUTPAGE
(
mp
);
filp
->
f_pos
=
-
1
;
return
0
;
...
...
@@ -3097,8 +3085,8 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
PARENT
(
ip
),
DT_DIR
))
return
0
;
}
else
{
j
ERROR
(
1
,
(
"jfs_readdir called with invalid offset!
\n
"
)
);
j
fs_err
(
"jfs_readdir called with "
"invalid offset!"
);
}
dtoffset
->
pn
=
1
;
dtoffset
->
index
=
0
;
...
...
@@ -3111,9 +3099,8 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
}
if
((
rc
=
dtReadNext
(
ip
,
&
filp
->
f_pos
,
&
btstack
)))
{
jERROR
(
1
,
(
"jfs_readdir: unexpected rc = %d from dtReadNext
\n
"
,
rc
));
jfs_err
(
"jfs_readdir: unexpected rc = %d "
"from dtReadNext"
,
rc
);
filp
->
f_pos
=
DIREND
;
return
0
;
}
...
...
@@ -3130,7 +3117,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
dirent_buf
=
__get_free_page
(
GFP_KERNEL
);
if
(
dirent_buf
==
0
)
{
DT_PUTPAGE
(
mp
);
j
ERROR
(
1
,
(
"jfs_readdir: __get_free_page failed!
\n
"
)
);
j
fs_warn
(
"jfs_readdir: __get_free_page failed!"
);
filp
->
f_pos
=
DIREND
;
return
-
ENOMEM
;
}
...
...
@@ -3202,9 +3189,10 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
d_namleft
-=
len
;
/* Sanity Check */
if
(
d_namleft
==
0
)
{
jERROR
(
1
,(
"JFS:Dtree error: "
"ino = %ld, bn=%Ld, index = %d
\n
"
,
(
long
)
ip
->
i_ino
,
(
long
long
)
bn
,
i
));
jfs_err
(
"JFS:Dtree error: ino = "
"%ld, bn=%Ld, index = %d"
,
(
long
)
ip
->
i_ino
,(
long
long
)
bn
,
i
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
goto
skip_one
;
}
...
...
fs/jfs/jfs_imap.c
View file @
6e5f0131
...
...
@@ -137,7 +137,7 @@ int diMount(struct inode *ipimap)
/* allocate the in-memory inode map control structure. */
imap
=
(
struct
inomap
*
)
kmalloc
(
sizeof
(
struct
inomap
),
GFP_KERNEL
);
if
(
imap
==
NULL
)
{
j
ERROR
(
1
,
(
"diMount: kmalloc returned NULL!
\n
"
)
);
j
fs_err
(
"diMount: kmalloc returned NULL!"
);
return
(
ENOMEM
);
}
...
...
@@ -253,7 +253,7 @@ int diSync(struct inode *ipimap)
IMAPBLKNO
<<
JFS_SBI
(
ipimap
->
i_sb
)
->
l2nbperpage
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
j
ERROR
(
1
,(
"diSync: get_metapage failed!
\n
"
)
);
j
fs_err
(
"diSync: get_metapage failed!"
);
return
EIO
;
}
...
...
@@ -339,7 +339,7 @@ int diRead(struct inode *ip)
uint
pageno
;
int
rel_inode
;
j
FYI
(
1
,
(
"diRead: ino = %ld
\n
"
,
ip
->
i_ino
)
);
j
fs_info
(
"diRead: ino = %ld"
,
ip
->
i_ino
);
ipimap
=
sbi
->
ipimap
;
JFS_IP
(
ip
)
->
ipimap
=
ipimap
;
...
...
@@ -353,7 +353,7 @@ int diRead(struct inode *ip)
rc
=
diIAGRead
(
imap
,
iagno
,
&
mp
);
IREAD_UNLOCK
(
ipimap
);
if
(
rc
)
{
j
ERROR
(
1
,
(
"diRead: diIAGRead returned %d
\n
"
,
rc
)
);
j
fs_err
(
"diRead: diIAGRead returned %d"
,
rc
);
return
(
rc
);
}
...
...
@@ -400,7 +400,7 @@ int diRead(struct inode *ip)
/* read the page of disk inode */
mp
=
read_metapage
(
ipimap
,
pageno
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
if
(
mp
==
0
)
{
j
ERROR
(
1
,
(
"diRead: read_metapage failed
\n
"
)
);
j
fs_err
(
"diRead: read_metapage failed"
);
return
EIO
;
}
...
...
@@ -409,7 +409,7 @@ int diRead(struct inode *ip)
dp
+=
rel_inode
;
if
(
ip
->
i_ino
!=
le32_to_cpu
(
dp
->
di_number
))
{
j
ERROR
(
1
,
(
"diRead: i_ino != di_number
\n
"
)
);
j
fs_err
(
"diRead: i_ino != di_number"
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
rc
=
EIO
;
}
else
if
(
le32_to_cpu
(
dp
->
di_nlink
)
==
0
)
...
...
@@ -460,8 +460,7 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary)
ip
=
new_inode
(
sb
);
if
(
ip
==
NULL
)
{
jERROR
(
1
,
(
"diReadSpecial: new_inode returned NULL!
\n
"
));
jfs_err
(
"diReadSpecial: new_inode returned NULL!"
);
return
ip
;
}
...
...
@@ -480,9 +479,6 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary)
address
+=
inum
>>
3
;
/* 8 inodes per 4K page */
/* read the page of fixed disk inode (AIT) in raw mode */
jEVENT
(
0
,
(
"Reading aggregate inode %d from block %d
\n
"
,
(
uint
)
inum
,
address
));
mp
=
read_metapage
(
ip
,
address
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
if
(
mp
==
NULL
)
{
ip
->
i_sb
=
NULL
;
...
...
@@ -553,13 +549,10 @@ void diWriteSpecial(struct inode *ip, int secondary)
address
+=
inum
>>
3
;
/* 8 inodes per 4K page */
/* read the page of fixed disk inode (AIT) in raw mode */
jEVENT
(
0
,
(
"Reading aggregate inode %d from block %d
\n
"
,
(
uint
)
inum
,
address
));
mp
=
read_metapage
(
ip
,
address
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
if
(
mp
==
NULL
)
{
j
ERROR
(
1
,
(
"diWriteSpecial: failed to read aggregate inode extent!
\n
"
)
);
j
fs_err
(
"diWriteSpecial: failed to read aggregate inode "
"extent!"
);
return
;
}
...
...
@@ -586,7 +579,7 @@ void diWriteSpecial(struct inode *ip, int secondary)
void
diFreeSpecial
(
struct
inode
*
ip
)
{
if
(
ip
==
NULL
)
{
j
ERROR
(
1
,
(
"diFreeSpecial called with NULL ip!
\n
"
)
);
j
fs_err
(
"diFreeSpecial called with NULL ip!"
);
return
;
}
filemap_fdatawrite
(
ip
->
i_mapping
);
...
...
@@ -794,7 +787,7 @@ int diWrite(tid_t tid, struct inode *ip)
lv
->
length
<<
L2DTSLOTSIZE
);
}
}
else
{
j
ERROR
(
1
,
(
"diWrite: UFO tlock
\n
"
)
);
j
fs_err
(
"diWrite: UFO tlock"
);
}
inlineData:
...
...
@@ -926,8 +919,8 @@ int diFree(struct inode *ip)
*/
//assert(iagno < imap->im_nextiag);
if
(
iagno
>=
imap
->
im_nextiag
)
{
j
ERROR
(
1
,
(
"diFree: inum = %d, iagno = %d, nextiag = %d
\n
"
,
(
uint
)
inum
,
iagno
,
imap
->
im_nextiag
)
);
j
fs_err
(
"diFree: inum = %d, iagno = %d, nextiag = %d
"
,
(
uint
)
inum
,
iagno
,
imap
->
im_nextiag
);
dump_mem
(
"imap"
,
imap
,
32
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
...
...
@@ -974,7 +967,7 @@ int diFree(struct inode *ip)
bitmap
=
le32_to_cpu
(
iagp
->
wmap
[
extno
])
&
~
mask
;
if
(
imap
->
im_agctl
[
agno
].
numfree
>
imap
->
im_agctl
[
agno
].
numinos
)
{
j
ERROR
(
1
,(
"diFree: numfree > numinos
\n
"
)
);
j
fs_err
(
"diFree: numfree > numinos"
);
release_metapage
(
mp
);
IREAD_UNLOCK
(
ipimap
);
AG_UNLOCK
(
imap
,
agno
);
...
...
@@ -1684,7 +1677,7 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
numinos
=
imap
->
im_agctl
[
agno
].
numinos
;
if
(
numfree
>
numinos
)
{
j
ERROR
(
1
,(
"diAllocAG: numfree > numinos
\n
"
)
);
j
fs_err
(
"diAllocAG: numfree > numinos"
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
}
...
...
@@ -1835,9 +1828,8 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
*/
//assert(iagp->nfreeinos);
if
(
!
iagp
->
nfreeinos
)
{
jERROR
(
1
,
(
"diAllocIno: nfreeinos = 0, but iag on freelist
\n
"
));
jERROR
(
1
,
(
" agno = %d, iagno = %d
\n
"
,
agno
,
iagno
));
jfs_err
(
"diAllocIno: nfreeinos = 0, but iag on freelist"
);
jfs_err
(
" agno = %d, iagno = %d"
,
agno
,
iagno
);
dump_mem
(
"iag"
,
iagp
,
64
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
...
...
@@ -2764,18 +2756,14 @@ diUpdatePMap(struct inode *ipimap,
* the inode will be freed from working map at the release
* of last reference release;
*/
// assert(le32_to_cpu(iagp->wmap[extno]) & mask);
if
(
!
(
le32_to_cpu
(
iagp
->
wmap
[
extno
])
&
mask
))
{
jERROR
(
1
,
(
"diUpdatePMap: inode %ld not marked as allocated in wmap!
\n
"
,
inum
));
jfs_err
(
"diUpdatePMap: inode %ld not marked as "
"allocated in wmap!"
,
inum
);
updateSuper
(
ipimap
->
i_sb
,
FM_DIRTY
);
}
// assert(le32_to_cpu(iagp->pmap[extno]) & mask);
if
(
!
(
le32_to_cpu
(
iagp
->
pmap
[
extno
])
&
mask
))
{
jERROR
(
1
,
(
"diUpdatePMap: inode %ld not marked as allocated in pmap!
\n
"
,
inum
));
jfs_err
(
"diUpdatePMap: inode %ld not marked as "
"allocated in pmap!"
,
inum
);
updateSuper
(
ipimap
->
i_sb
,
FM_DIRTY
);
}
/* update the bitmap for the extent of the freed inode */
...
...
@@ -2851,9 +2839,9 @@ int diExtendFS(struct inode *ipimap, struct inode *ipbmap)
int
numinos
,
xnuminos
=
0
,
xnumfree
=
0
;
s64
agstart
;
j
EVENT
(
0
,
(
"diExtendFS: nextiag:%d numinos:%d numfree:%d
\n
"
,
j
fs_info
(
"diExtendFS: nextiag:%d numinos:%d numfree:%d
"
,
imap
->
im_nextiag
,
atomic_read
(
&
imap
->
im_numinos
),
atomic_read
(
&
imap
->
im_numfree
))
)
;
atomic_read
(
&
imap
->
im_numfree
));
/*
* reconstruct imap
...
...
fs/jfs/jfs_inode.c
View file @
6e5f0131
...
...
@@ -38,7 +38,7 @@ struct inode *ialloc(struct inode *parent, umode_t mode)
inode
=
new_inode
(
sb
);
if
(
!
inode
)
{
j
ERROR
(
1
,
(
"ialloc: new_inode returned NULL!
\n
"
)
);
j
fs_warn
(
"ialloc: new_inode returned NULL!"
);
return
inode
;
}
...
...
@@ -46,7 +46,7 @@ struct inode *ialloc(struct inode *parent, umode_t mode)
rc
=
diAlloc
(
parent
,
S_ISDIR
(
mode
),
inode
);
if
(
rc
)
{
j
ERROR
(
1
,
(
"ialloc: diAlloc returned %d!
\n
"
,
rc
)
);
j
fs_warn
(
"ialloc: diAlloc returned %d!"
,
rc
);
make_bad_inode
(
inode
);
iput
(
inode
);
return
NULL
;
...
...
@@ -87,7 +87,7 @@ struct inode *ialloc(struct inode *parent, umode_t mode)
jfs_inode
->
atltail
=
0
;
jfs_inode
->
xtlid
=
0
;
j
FYI
(
1
,
(
"ialloc returns inode = 0x%p
\n
"
,
inode
)
);
j
fs_info
(
"ialloc returns inode = 0x%p
\n
"
,
inode
);
return
inode
;
}
fs/jfs/jfs_logmgr.c
View file @
6e5f0131
...
...
@@ -222,8 +222,8 @@ int lmLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
int
diffp
,
difft
;
struct
metapage
*
mp
=
NULL
;
j
FYI
(
1
,
(
"lmLog: log:0x%p tblk:0x%p, lrd:0x%p tlck:0x%p
\n
"
,
log
,
tblk
,
lrd
,
tlck
)
)
;
j
fs_info
(
"lmLog: log:0x%p tblk:0x%p, lrd:0x%p tlck:0x%p
"
,
log
,
tblk
,
lrd
,
tlck
);
LOG_LOCK
(
log
);
...
...
@@ -390,7 +390,7 @@ lmWriteRecord(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
}
#endif
/* _JFS_WIP */
else
{
j
ERROR
(
2
,
(
"lmWriteRecord: UFO tlck:0x%p
\n
"
,
tlck
)
);
j
fs_err
(
"lmWriteRecord: UFO tlck:0x%p"
,
tlck
);
return
0
;
/* Probably should trap */
}
l2linesize
=
linelock
->
l2linesize
;
...
...
@@ -449,9 +449,8 @@ lmWriteRecord(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
lvd
->
offset
=
cpu_to_le16
(
lv
->
offset
);
lvd
->
length
=
cpu_to_le16
(
lv
->
length
);
dstoffset
+=
4
;
jFYI
(
1
,
(
"lmWriteRecord: lv offset:%d length:%d
\n
"
,
lv
->
offset
,
lv
->
length
));
jfs_info
(
"lmWriteRecord: lv offset:%d length:%d"
,
lv
->
offset
,
lv
->
length
);
}
if
((
i
=
linelock
->
next
))
{
...
...
@@ -492,9 +491,8 @@ lmWriteRecord(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
if
(
lrd
->
type
&
cpu_to_le16
(
LOG_COMMIT
))
{
tblk
->
clsn
=
lsn
;
jFYI
(
1
,
(
"wr: tclsn:0x%x, beor:0x%x
\n
"
,
tblk
->
clsn
,
bp
->
l_eor
));
jfs_info
(
"wr: tclsn:0x%x, beor:0x%x"
,
tblk
->
clsn
,
bp
->
l_eor
);
INCREMENT
(
lmStat
.
commit
);
/* # of commit */
...
...
@@ -526,10 +524,8 @@ lmWriteRecord(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
LOGGC_UNLOCK
(
log
);
}
jFYI
(
1
,
(
"lmWriteRecord: lrd:0x%04x bp:0x%p pn:%d eor:0x%x
\n
"
,
le16_to_cpu
(
lrd
->
type
),
log
->
bp
,
log
->
page
,
dstoffset
));
jfs_info
(
"lmWriteRecord: lrd:0x%04x bp:0x%p pn:%d eor:0x%x"
,
le16_to_cpu
(
lrd
->
type
),
log
->
bp
,
log
->
page
,
dstoffset
);
/* page not full ? */
if
(
dstoffset
<
LOGPSIZE
-
LOGPTLRSIZE
)
...
...
@@ -569,8 +565,6 @@ static int lmNextPage(struct jfs_log * log)
struct
lbuf
*
nextbp
;
struct
tblock
*
tblk
;
jFYI
(
1
,
(
"lmNextPage
\n
"
));
/* get current log page number and log sequence page number */
pn
=
log
->
page
;
bp
=
log
->
bp
;
...
...
@@ -646,7 +640,6 @@ static int lmNextPage(struct jfs_log * log)
lp
->
h
.
page
=
lp
->
t
.
page
=
cpu_to_le32
(
lspn
+
1
);
lp
->
h
.
eor
=
lp
->
t
.
eor
=
cpu_to_le16
(
LOGPHDRSIZE
);
jFYI
(
1
,
(
"lmNextPage done
\n
"
));
return
0
;
}
...
...
@@ -680,8 +673,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
LOGGC_UNLOCK
(
log
);
return
rc
;
}
jFYI
(
1
,
(
"lmGroup Commit: tblk = 0x%p, gcrtc = %d
\n
"
,
tblk
,
log
->
gcrtc
));
jfs_info
(
"lmGroup Commit: tblk = 0x%p, gcrtc = %d"
,
tblk
,
log
->
gcrtc
);
if
(
tblk
->
xflag
&
COMMIT_LAZY
)
{
/*
...
...
@@ -783,9 +775,6 @@ static void lmGCwrite(struct jfs_log * log, int cant_write)
tblk
->
flag
|=
tblkGC_FREE
;
bp
->
l_ceor
=
bp
->
l_eor
;
lp
->
h
.
eor
=
lp
->
t
.
eor
=
cpu_to_le16
(
bp
->
l_ceor
);
jEVENT
(
0
,
(
"gc: tclsn:0x%x, bceor:0x%x
\n
"
,
tblk
->
clsn
,
bp
->
l_ceor
));
lbmWrite
(
log
,
bp
,
lbmWRITE
|
lbmRELEASE
|
lbmGC
,
cant_write
);
INCREMENT
(
lmStat
.
full_page
);
...
...
@@ -794,9 +783,6 @@ static void lmGCwrite(struct jfs_log * log, int cant_write)
else
{
bp
->
l_ceor
=
tblk
->
eor
;
/* ? bp->l_ceor = bp->l_eor; */
lp
->
h
.
eor
=
lp
->
t
.
eor
=
cpu_to_le16
(
bp
->
l_ceor
);
jEVENT
(
0
,
(
"gc: tclsn:0x%x, bceor:0x%x
\n
"
,
tblk
->
clsn
,
bp
->
l_ceor
));
lbmWrite
(
log
,
bp
,
lbmWRITE
|
lbmGC
,
cant_write
);
INCREMENT
(
lmStat
.
partial_page
);
}
...
...
@@ -845,9 +831,8 @@ void lmPostGC(struct lbuf * bp)
tblk
->
flag
&=
~
tblkGC_QUEUE
;
tblk
->
cqnext
=
0
;
jEVENT
(
0
,
(
"lmPostGC: tblk = 0x%p, flag = 0x%x
\n
"
,
tblk
,
tblk
->
flag
));
jfs_info
(
"lmPostGC: tblk = 0x%p, flag = 0x%x"
,
tblk
,
tblk
->
flag
);
if
(
!
(
tblk
->
xflag
&
COMMIT_FORCE
))
/*
...
...
@@ -877,7 +862,7 @@ void lmPostGC(struct lbuf * bp)
lp
=
(
struct
logpage
*
)
bp
->
l_ldata
;
bp
->
l_ceor
=
bp
->
l_eor
;
lp
->
h
.
eor
=
lp
->
t
.
eor
=
cpu_to_le16
(
bp
->
l_eor
);
j
EVENT
(
0
,
(
"lmPostGC: calling lbmWrite
\n
"
)
);
j
fs_info
(
"lmPostGC: calling lbmWrite"
);
lbmWrite
(
log
,
bp
,
lbmWRITE
|
lbmRELEASE
|
lbmFREE
,
1
);
}
...
...
@@ -1008,8 +993,7 @@ int lmLogSync(struct jfs_log * log, int nosyncwait)
delta
=
LOGSYNC_DELTA
(
logsize
);
more
=
min
(
free
/
2
,
delta
);
if
(
more
<
2
*
LOGPSIZE
)
{
jEVENT
(
1
,
(
"
\n
... Log Wrap ... Log Wrap ... Log Wrap ...
\n\n
"
));
jfs_warn
(
"
\n
... Log Wrap ... Log Wrap ... Log Wrap ...
\n
"
);
/*
* log wrapping
*
...
...
@@ -1048,8 +1032,8 @@ int lmLogSync(struct jfs_log * log, int nosyncwait)
*/
if
(
written
>
LOGSYNC_BARRIER
(
logsize
)
&&
logsize
>
32
*
LOGPSIZE
)
{
set_bit
(
log_SYNCBARRIER
,
&
log
->
flag
);
j
FYI
(
1
,
(
"log barrier on: lsn=0x%x syncpt=0x%x
\n
"
,
lsn
,
log
->
syncpt
)
)
;
j
fs_info
(
"log barrier on: lsn=0x%x syncpt=0x%x
"
,
lsn
,
log
->
syncpt
);
/*
* We may have to initiate group commit
*/
...
...
@@ -1148,7 +1132,6 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
goto
shutdown
;
out:
jFYI
(
1
,
(
"lmLogOpen: exit(0)
\n
"
));
*
logptr
=
log
;
return
0
;
...
...
@@ -1167,7 +1150,7 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
free:
/* free log descriptor */
kfree
(
log
);
j
FYI
(
1
,
(
"lmLogOpen: exit(%d)
\n
"
,
rc
)
);
j
fs_warn
(
"lmLogOpen: exit(%d)"
,
rc
);
return
rc
;
}
...
...
@@ -1200,7 +1183,7 @@ int lmLogInit(struct jfs_log * log)
struct
logpage
*
lp
;
int
lsn
;
j
FYI
(
1
,
(
"lmLogInit: log:0x%p
\n
"
,
log
)
);
j
fs_info
(
"lmLogInit: log:0x%p"
,
log
);
/*
* log inode is overlaid on generic inode where
...
...
@@ -1224,14 +1207,14 @@ int lmLogInit(struct jfs_log * log)
logsuper
=
(
struct
logsuper
*
)
bpsuper
->
l_ldata
;
if
(
logsuper
->
magic
!=
cpu_to_le32
(
LOGMAGIC
))
{
j
ERROR
(
1
,
(
"*** Log Format Error ! ***
\n
"
)
);
j
fs_warn
(
"*** Log Format Error ! ***"
);
rc
=
EINVAL
;
goto
errout20
;
}
/* logredo() should have been run successfully. */
if
(
logsuper
->
state
!=
cpu_to_le32
(
LOGREDONE
))
{
j
ERROR
(
1
,
(
"*** Log Is Dirty ! ***
\n
"
)
);
j
fs_warn
(
"*** Log Is Dirty ! ***"
);
rc
=
EINVAL
;
goto
errout20
;
}
...
...
@@ -1242,19 +1225,17 @@ int lmLogInit(struct jfs_log * log)
rc
=
EINVAL
;
goto
errout20
;
}
jFYI
(
0
,
(
"lmLogInit: inline log:0x%p base:0x%Lx size:0x%x
\n
"
,
log
,
(
unsigned
long
long
)
log
->
base
,
log
->
size
));
jfs_info
(
"lmLogInit: inline log:0x%p base:0x%Lx size:0x%x"
,
log
,
(
unsigned
long
long
)
log
->
base
,
log
->
size
);
}
else
{
if
(
memcmp
(
logsuper
->
uuid
,
log
->
uuid
,
16
))
{
j
ERROR
(
1
,(
"wrong uuid on JFS log device
\n
"
)
);
j
fs_warn
(
"wrong uuid on JFS log device"
);
goto
errout20
;
}
log
->
size
=
le32_to_cpu
(
logsuper
->
size
);
log
->
l2bsize
=
le32_to_cpu
(
logsuper
->
l2bsize
);
jFYI
(
0
,
(
"lmLogInit: external log:0x%p base:0x%Lx size:0x%x
\n
"
,
log
,
(
unsigned
long
long
)
log
->
base
,
log
->
size
));
jfs_info
(
"lmLogInit: external log:0x%p base:0x%Lx size:0x%x"
,
log
,
(
unsigned
long
long
)
log
->
base
,
log
->
size
);
}
log
->
page
=
le32_to_cpu
(
logsuper
->
end
)
/
LOGPSIZE
;
...
...
@@ -1269,9 +1250,9 @@ int lmLogInit(struct jfs_log * log)
lp
=
(
struct
logpage
*
)
bp
->
l_ldata
;
j
FYI
(
1
,
(
"lmLogInit: lsn:0x%x page:%d eor:%d:%d
\n
"
,
j
fs_info
(
"lmLogInit: lsn:0x%x page:%d eor:%d:%d
"
,
le32_to_cpu
(
logsuper
->
end
),
log
->
page
,
log
->
eor
,
le16_to_cpu
(
lp
->
h
.
eor
))
)
;
le16_to_cpu
(
lp
->
h
.
eor
));
// ASSERT(log->eor == lp->h.eor);
...
...
@@ -1319,8 +1300,8 @@ int lmLogInit(struct jfs_log * log)
log
->
sync
=
log
->
syncpt
;
log
->
nextsync
=
LOGSYNC_DELTA
(
log
->
logsize
);
j
FYI
(
1
,
(
"lmLogInit: lsn:0x%x syncpt:0x%x sync:0x%x
\n
"
,
log
->
lsn
,
log
->
syncpt
,
log
->
sync
)
)
;
j
fs_info
(
"lmLogInit: lsn:0x%x syncpt:0x%x sync:0x%x
"
,
log
->
lsn
,
log
->
syncpt
,
log
->
sync
);
LOGSYNC_LOCK_INIT
(
log
);
...
...
@@ -1345,7 +1326,6 @@ int lmLogInit(struct jfs_log * log)
if
((
rc
=
lbmIOWait
(
bpsuper
,
lbmFREE
)))
goto
errout30
;
jFYI
(
1
,
(
"lmLogInit: exit(%d)
\n
"
,
rc
));
return
0
;
/*
...
...
@@ -1360,7 +1340,7 @@ int lmLogInit(struct jfs_log * log)
errout10:
/* unwind lbmLogInit() */
lbmLogShutdown
(
log
);
j
FYI
(
1
,
(
"lmLogInit: exit(%d)
\n
"
,
rc
)
);
j
fs_warn
(
"lmLogInit: exit(%d)"
,
rc
);
return
rc
;
}
...
...
@@ -1383,7 +1363,7 @@ int lmLogClose(struct super_block *sb, struct jfs_log * log)
struct
block_device
*
bdev
=
log
->
bdev
;
int
rc
;
j
FYI
(
1
,
(
"lmLogClose: log:0x%p
\n
"
,
log
)
);
j
fs_info
(
"lmLogClose: log:0x%p"
,
log
);
if
(
!
test_bit
(
log_INLINELOG
,
&
log
->
flag
))
goto
externalLog
;
...
...
@@ -1405,7 +1385,7 @@ int lmLogClose(struct super_block *sb, struct jfs_log * log)
blkdev_put
(
bdev
,
BDEV_FS
);
out:
j
FYI
(
0
,
(
"lmLogClose: exit(%d)
\n
"
,
rc
)
);
j
fs_info
(
"lmLogClose: exit(%d)"
,
rc
);
return
rc
;
}
...
...
@@ -1420,7 +1400,7 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
{
int
i
;
j
FYI
(
1
,
(
"jfs_flush_journal: log:0x%p wait=%d
\n
"
,
log
,
wait
)
);
j
fs_info
(
"jfs_flush_journal: log:0x%p wait=%d"
,
log
,
wait
);
/*
* This ensures that we will keep writing to the journal as long
...
...
@@ -1485,7 +1465,7 @@ int lmLogShutdown(struct jfs_log * log)
struct
lbuf
*
bp
;
struct
logpage
*
lp
;
j
FYI
(
1
,
(
"lmLogShutdown: log:0x%p
\n
"
,
log
)
);
j
fs_info
(
"lmLogShutdown: log:0x%p"
,
log
);
jfs_flush_journal
(
log
,
1
);
...
...
@@ -1525,8 +1505,8 @@ int lmLogShutdown(struct jfs_log * log)
lbmDirectWrite
(
log
,
bpsuper
,
lbmWRITE
|
lbmRELEASE
|
lbmSYNC
);
rc
=
lbmIOWait
(
bpsuper
,
lbmFREE
);
j
FYI
(
1
,
(
"lmLogShutdown: lsn:0x%x page:%d eor:%d
\n
"
,
lsn
,
log
->
page
,
log
->
eor
)
)
;
j
fs_info
(
"lmLogShutdown: lsn:0x%x page:%d eor:%d
"
,
lsn
,
log
->
page
,
log
->
eor
);
out:
/*
...
...
@@ -1535,7 +1515,7 @@ int lmLogShutdown(struct jfs_log * log)
lbmLogShutdown
(
log
);
if
(
rc
)
{
j
FYI
(
1
,
(
"lmLogShutdown: exit(%d)
\n
"
,
rc
)
);
j
fs_warn
(
"lmLogShutdown: exit(%d)"
,
rc
);
}
return
rc
;
}
...
...
@@ -1576,7 +1556,7 @@ static int lmLogFileSystem(struct jfs_log * log, char *uuid, int activate)
break
;
}
if
(
i
==
MAX_ACTIVE
)
{
j
ERROR
(
1
,(
"Too many file systems sharing journal!
\n
"
)
);
j
fs_warn
(
"Too many file systems sharing journal!"
);
lbmFree
(
bpsuper
);
return
EMFILE
;
/* Is there a better rc? */
}
...
...
@@ -1587,7 +1567,7 @@ static int lmLogFileSystem(struct jfs_log * log, char *uuid, int activate)
break
;
}
if
(
i
==
MAX_ACTIVE
)
{
j
ERROR
(
1
,(
"Somebody stomped on the journal!
\n
"
)
);
j
fs_warn
(
"Somebody stomped on the journal!"
);
lbmFree
(
bpsuper
);
return
EIO
;
}
...
...
@@ -1636,7 +1616,7 @@ static int lbmLogInit(struct jfs_log * log)
int
i
;
struct
lbuf
*
lbuf
;
j
FYI
(
1
,
(
"lbmLogInit: log:0x%p
\n
"
,
log
)
);
j
fs_info
(
"lbmLogInit: log:0x%p"
,
log
);
/* initialize current buffer cursor */
log
->
bp
=
NULL
;
...
...
@@ -1690,7 +1670,7 @@ static void lbmLogShutdown(struct jfs_log * log)
{
struct
lbuf
*
lbuf
;
j
FYI
(
1
,
(
"lbmLogShutdown: log:0x%p
\n
"
,
log
)
);
j
fs_info
(
"lbmLogShutdown: log:0x%p"
,
log
);
lbuf
=
log
->
lbuf_free
;
while
(
lbuf
)
{
...
...
@@ -1804,7 +1784,7 @@ static int lbmRead(struct jfs_log * log, int pn, struct lbuf ** bpp)
* allocate a log buffer
*/
*
bpp
=
bp
=
lbmAllocate
(
log
,
pn
);
j
FYI
(
1
,
(
"lbmRead: bp:0x%p pn:0x%x
\n
"
,
bp
,
pn
)
);
j
fs_info
(
"lbmRead: bp:0x%p pn:0x%x"
,
bp
,
pn
);
bp
->
l_flag
|=
lbmREAD
;
...
...
@@ -1852,8 +1832,7 @@ static void lbmWrite(struct jfs_log * log, struct lbuf * bp, int flag,
struct
lbuf
*
tail
;
unsigned
long
flags
;
jFYI
(
1
,
(
"lbmWrite: bp:0x%p flag:0x%x pn:0x%x
\n
"
,
bp
,
flag
,
bp
->
l_pn
));
jfs_info
(
"lbmWrite: bp:0x%p flag:0x%x pn:0x%x"
,
bp
,
flag
,
bp
->
l_pn
);
/* map the logical block address to physical block address */
bp
->
l_blkno
=
...
...
@@ -1917,8 +1896,8 @@ static void lbmWrite(struct jfs_log * log, struct lbuf * bp, int flag,
*/
static
void
lbmDirectWrite
(
struct
jfs_log
*
log
,
struct
lbuf
*
bp
,
int
flag
)
{
j
EVENT
(
0
,
(
"lbmDirectWrite: bp:0x%p flag:0x%x pn:0x%x
\n
"
,
bp
,
flag
,
bp
->
l_pn
)
);
j
fs_info
(
"lbmDirectWrite: bp:0x%p flag:0x%x pn:0x%x
"
,
bp
,
flag
,
bp
->
l_pn
);
/*
* initialize buffer for device driver
...
...
@@ -1950,7 +1929,7 @@ static void lbmStartIO(struct lbuf * bp)
struct
bio
*
bio
;
struct
jfs_log
*
log
=
bp
->
l_log
;
j
FYI
(
1
,
(
"lbmStartIO
\n
"
)
);
j
fs_info
(
"lbmStartIO
\n
"
);
bio
=
bio_alloc
(
GFP_NOFS
,
1
);
bio
->
bi_sector
=
bp
->
l_blkno
<<
(
log
->
l2bsize
-
9
);
...
...
@@ -1970,8 +1949,6 @@ static void lbmStartIO(struct lbuf * bp)
INCREMENT
(
lmStat
.
submitted
);
blk_run_queues
();
jFYI
(
1
,
(
"lbmStartIO done
\n
"
));
}
...
...
@@ -1983,9 +1960,7 @@ static int lbmIOWait(struct lbuf * bp, int flag)
unsigned
long
flags
;
int
rc
=
0
;
jFYI
(
1
,
(
"lbmIOWait1: bp:0x%p flag:0x%x:0x%x
\n
"
,
bp
,
bp
->
l_flag
,
flag
));
jfs_info
(
"lbmIOWait1: bp:0x%p flag:0x%x:0x%x"
,
bp
,
bp
->
l_flag
,
flag
);
LCACHE_LOCK
(
flags
);
/* disable+lock */
...
...
@@ -1998,9 +1973,7 @@ static int lbmIOWait(struct lbuf * bp, int flag)
LCACHE_UNLOCK
(
flags
);
/* unlock+enable */
jFYI
(
1
,
(
"lbmIOWait2: bp:0x%p flag:0x%x:0x%x
\n
"
,
bp
,
bp
->
l_flag
,
flag
));
jfs_info
(
"lbmIOWait2: bp:0x%p flag:0x%x:0x%x"
,
bp
,
bp
->
l_flag
,
flag
);
return
rc
;
}
...
...
@@ -2022,7 +1995,7 @@ static int lbmIODone(struct bio *bio, unsigned int bytes_done, int error)
/*
* get back jfs buffer bound to the i/o buffer
*/
j
EVENT
(
0
,
(
"lbmIODone: bp:0x%p flag:0x%x
\n
"
,
bp
,
bp
->
l_flag
)
);
j
fs_info
(
"lbmIODone: bp:0x%p flag:0x%x"
,
bp
,
bp
->
l_flag
);
LCACHE_LOCK
(
flags
);
/* disable+lock */
...
...
@@ -2031,7 +2004,7 @@ static int lbmIODone(struct bio *bio, unsigned int bytes_done, int error)
if
(
!
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
))
{
bp
->
l_flag
|=
lbmERROR
;
j
ERROR
(
1
,
(
"lbmIODone: I/O error in JFS log
\n
"
)
);
j
fs_err
(
"lbmIODone: I/O error in JFS log"
);
}
bio_put
(
bio
);
...
...
@@ -2159,8 +2132,6 @@ int jfsIOWait(void *arg)
{
struct
lbuf
*
bp
;
jFYI
(
1
,
(
"jfsIOWait is here!
\n
"
));
lock_kernel
();
daemonize
();
...
...
@@ -2199,7 +2170,7 @@ int jfsIOWait(void *arg)
}
}
while
(
!
jfs_stop_threads
);
j
FYI
(
1
,(
"jfsIOWait being killed!
\n
"
)
);
j
fs_info
(
"jfsIOWait being killed!"
);
complete
(
&
jfsIOwait
);
return
0
;
}
...
...
@@ -2231,8 +2202,8 @@ int lmLogFormat(struct jfs_log *log, s64 logAddress, int logSize)
int
npages
=
0
;
struct
lbuf
*
bp
;
j
FYI
(
0
,
(
"lmLogFormat: logAddress:%Ld logSize:%d
\n
"
,
(
long
long
)
logAddress
,
logSize
)
)
;
j
fs_info
(
"lmLogFormat: logAddress:%Ld logSize:%d
"
,
(
long
long
)
logAddress
,
logSize
);
/* allocate a log buffer */
bp
=
lbmAllocate
(
log
,
1
);
...
...
fs/jfs/jfs_metapage.c
View file @
6e5f0131
...
...
@@ -229,8 +229,7 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
unsigned
long
page_index
;
unsigned
long
page_offset
;
jFYI
(
1
,
(
"__get_metapage: inode = 0x%p, lblock = 0x%lx
\n
"
,
inode
,
lblock
));
jfs_info
(
"__get_metapage: inode = 0x%p, lblock = 0x%lx"
,
inode
,
lblock
);
if
(
absolute
)
mapping
=
inode
->
i_sb
->
s_bdev
->
bd_inode
->
i_mapping
;
...
...
@@ -249,7 +248,7 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
clear_bit
(
META_discard
,
&
mp
->
flag
);
}
mp
->
count
++
;
j
FYI
(
1
,
(
"__get_metapage: found 0x%p, in hash
\n
"
,
mp
)
);
j
fs_info
(
"__get_metapage: found 0x%p, in hash"
,
mp
);
assert
(
mp
->
logical_size
==
size
);
lock_metapage
(
mp
);
spin_unlock
(
&
meta_lock
);
...
...
@@ -261,7 +260,7 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
l2bsize
;
if
((
page_offset
+
size
)
>
PAGE_CACHE_SIZE
)
{
spin_unlock
(
&
meta_lock
);
j
ERROR
(
1
,
(
"MetaData crosses page boundary!!
\n
"
)
);
j
fs_err
(
"MetaData crosses page boundary!!"
);
return
NULL
;
}
...
...
@@ -320,30 +319,28 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
spin_unlock
(
&
meta_lock
);
if
(
new
)
{
jFYI
(
1
,
(
"__get_metapage: Calling grab_cache_page
\n
"
));
jfs_info
(
"__get_metapage: Calling grab_cache_page"
);
mp
->
page
=
grab_cache_page
(
mapping
,
page_index
);
if
(
!
mp
->
page
)
{
j
ERROR
(
1
,
(
"grab_cache_page failed!
\n
"
)
);
j
fs_err
(
"grab_cache_page failed!"
);
goto
freeit
;
}
else
{
INCREMENT
(
mpStat
.
pagealloc
);
unlock_page
(
mp
->
page
);
}
}
else
{
jFYI
(
1
,
(
"__get_metapage: Calling read_cache_page
\n
"
));
jfs_info
(
"__get_metapage: Calling read_cache_page"
);
mp
->
page
=
read_cache_page
(
mapping
,
lblock
,
(
filler_t
*
)
mapping
->
a_ops
->
readpage
,
NULL
);
if
(
IS_ERR
(
mp
->
page
))
{
j
ERROR
(
1
,
(
"read_cache_page failed!
\n
"
)
);
j
fs_err
(
"read_cache_page failed!"
);
goto
freeit
;
}
else
INCREMENT
(
mpStat
.
pagealloc
);
}
mp
->
data
=
kmap
(
mp
->
page
)
+
page_offset
;
}
j
FYI
(
1
,
(
"__get_metapage: returning = 0x%p
\n
"
,
mp
)
);
j
fs_info
(
"__get_metapage: returning = 0x%p"
,
mp
);
return
mp
;
freeit:
...
...
@@ -378,7 +375,7 @@ static void __write_metapage(struct metapage * mp)
unsigned
long
page_offset
;
int
rc
;
j
FYI
(
1
,
(
"__write_metapage: mp = 0x%p
\n
"
,
mp
)
);
j
fs_info
(
"__write_metapage: mp = 0x%p"
,
mp
);
if
(
test_bit
(
META_discard
,
&
mp
->
flag
))
{
/*
...
...
@@ -397,7 +394,7 @@ static void __write_metapage(struct metapage * mp)
page_offset
+
mp
->
logical_size
);
if
(
rc
)
{
j
ERROR
(
1
,
(
"prepare_write return %d!
\n
"
,
rc
)
);
j
fs_err
(
"prepare_write return %d!"
,
rc
);
ClearPageUptodate
(
mp
->
page
);
unlock_page
(
mp
->
page
);
clear_bit
(
META_dirty
,
&
mp
->
flag
);
...
...
@@ -407,13 +404,13 @@ static void __write_metapage(struct metapage * mp)
page_offset
+
mp
->
logical_size
);
if
(
rc
)
{
j
ERROR
(
1
,
(
"commit_write returned %d
\n
"
,
rc
)
);
j
fs_err
(
"commit_write returned %d"
,
rc
);
}
unlock_page
(
mp
->
page
);
clear_bit
(
META_dirty
,
&
mp
->
flag
);
j
FYI
(
1
,
(
"__write_metapage done
\n
"
)
);
j
fs_info
(
"__write_metapage done"
);
}
static
inline
void
sync_metapage
(
struct
metapage
*
mp
)
...
...
@@ -435,9 +432,7 @@ void release_metapage(struct metapage * mp)
{
struct
jfs_log
*
log
;
jFYI
(
1
,
(
"release_metapage: mp = 0x%p, flag = 0x%lx
\n
"
,
mp
,
mp
->
flag
));
jfs_info
(
"release_metapage: mp = 0x%p, flag = 0x%lx"
,
mp
,
mp
->
flag
);
spin_lock
(
&
meta_lock
);
if
(
test_bit
(
META_forced
,
&
mp
->
flag
))
{
...
...
@@ -491,7 +486,6 @@ void release_metapage(struct metapage * mp)
free_metapage
(
mp
);
}
jFYI
(
1
,
(
"release_metapage: done
\n
"
));
}
void
__invalidate_metapages
(
struct
inode
*
ip
,
s64
addr
,
int
len
)
...
...
fs/jfs/jfs_mount.c
View file @
6e5f0131
...
...
@@ -87,8 +87,6 @@ int jfs_mount(struct super_block *sb)
struct
inode
*
ipimap
=
NULL
;
struct
inode
*
ipbmap
=
NULL
;
jFYI
(
1
,
(
"
\n
Mount JFS
\n
"
));
/*
* read/validate superblock
* (initialize mount inode from the superblock)
...
...
@@ -99,21 +97,19 @@ int jfs_mount(struct super_block *sb)
ipaimap
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
0
);
if
(
ipaimap
==
NULL
)
{
j
ERROR
(
1
,
(
"jfs_mount: Faild to read AGGREGATE_I
\n
"
)
);
j
fs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
rc
=
EIO
;
goto
errout20
;
}
sbi
->
ipaimap
=
ipaimap
;
j
FYI
(
1
,
(
"jfs_mount: ipaimap:0x%p
\n
"
,
ipaimap
)
);
j
fs_info
(
"jfs_mount: ipaimap:0x%p"
,
ipaimap
);
/*
* initialize aggregate inode allocation map
*/
if
((
rc
=
diMount
(
ipaimap
)))
{
jERROR
(
1
,
(
"jfs_mount: diMount(ipaimap) failed w/rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_mount: diMount(ipaimap) failed w/rc = %d"
,
rc
);
goto
errout21
;
}
...
...
@@ -126,7 +122,7 @@ int jfs_mount(struct super_block *sb)
goto
errout22
;
}
j
FYI
(
1
,
(
"jfs_mount: ipbmap:0x%p
\n
"
,
ipbmap
)
);
j
fs_info
(
"jfs_mount: ipbmap:0x%p"
,
ipbmap
);
sbi
->
ipbmap
=
ipbmap
;
...
...
@@ -134,7 +130,7 @@ int jfs_mount(struct super_block *sb)
* initialize aggregate block allocation map
*/
if
((
rc
=
dbMount
(
ipbmap
)))
{
j
ERROR
(
1
,
(
"jfs_mount: dbMount failed w/rc = %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_mount: dbMount failed w/rc = %d"
,
rc
);
goto
errout22
;
}
...
...
@@ -152,22 +148,20 @@ int jfs_mount(struct super_block *sb)
if
((
sbi
->
mntflag
&
JFS_BAD_SAIT
)
==
0
)
{
ipaimap2
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
1
);
if
(
ipaimap2
==
0
)
{
jERROR
(
1
,
(
"jfs_mount: Faild to read AGGREGATE_I
\n
"
));
jfs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
rc
=
EIO
;
goto
errout35
;
}
sbi
->
ipaimap2
=
ipaimap2
;
j
FYI
(
1
,
(
"jfs_mount: ipaimap2:0x%p
\n
"
,
ipaimap2
)
);
j
fs_info
(
"jfs_mount: ipaimap2:0x%p"
,
ipaimap2
);
/*
* initialize secondary aggregate inode allocation map
*/
if
((
rc
=
diMount
(
ipaimap2
)))
{
jERROR
(
1
,
(
"jfs_mount: diMount(ipaimap2) failed, rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_mount: diMount(ipaimap2) failed, rc = %d"
,
rc
);
goto
errout35
;
}
}
else
...
...
@@ -182,23 +176,22 @@ int jfs_mount(struct super_block *sb)
*/
ipimap
=
diReadSpecial
(
sb
,
FILESYSTEM_I
,
0
);
if
(
ipimap
==
NULL
)
{
j
ERROR
(
1
,
(
"jfs_mount: Failed to read FILESYSTEM_I
\n
"
)
);
j
fs_err
(
"jfs_mount: Failed to read FILESYSTEM_I"
);
/* open fileset secondary inode allocation map */
rc
=
EIO
;
goto
errout40
;
}
j
FYI
(
1
,
(
"jfs_mount: ipimap:0x%p
\n
"
,
ipimap
)
);
j
fs_info
(
"jfs_mount: ipimap:0x%p"
,
ipimap
);
/* map further access of per fileset inodes by the fileset inode */
sbi
->
ipimap
=
ipimap
;
/* initialize fileset inode allocation map */
if
((
rc
=
diMount
(
ipimap
)))
{
j
ERROR
(
1
,
(
"jfs_mount: diMount failed w/rc = %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_mount: diMount failed w/rc = %d"
,
rc
);
goto
errout41
;
}
jFYI
(
1
,
(
"Mount JFS Complete.
\n
"
));
goto
out
;
/*
...
...
@@ -234,9 +227,9 @@ int jfs_mount(struct super_block *sb)
out:
if
(
rc
)
{
j
ERROR
(
1
,
(
"Mount JFS Failure: %d
\n
"
,
rc
)
);
}
if
(
rc
)
j
fs_err
(
"Mount JFS Failure: %d"
,
rc
);
return
rc
;
}
...
...
@@ -265,13 +258,13 @@ int jfs_mount_rw(struct super_block *sb, int remount)
truncate_inode_pages
(
sbi
->
ipbmap
->
i_mapping
,
0
);
diUnmount
(
sbi
->
ipimap
,
1
);
if
((
rc
=
diMount
(
sbi
->
ipimap
)))
{
j
ERROR
(
1
,(
"jfs_mount_rw: diMount failed!
\n
"
)
);
j
fs_err
(
"jfs_mount_rw: diMount failed!"
);
return
rc
;
}
dbUnmount
(
sbi
->
ipbmap
,
1
);
if
((
rc
=
dbMount
(
sbi
->
ipbmap
)))
{
j
ERROR
(
1
,(
"jfs_mount_rw: dbMount failed!
\n
"
)
);
j
fs_err
(
"jfs_mount_rw: dbMount failed!"
);
return
rc
;
}
}
...
...
@@ -288,8 +281,7 @@ int jfs_mount_rw(struct super_block *sb, int remount)
* update file system superblock;
*/
if
((
rc
=
updateSuper
(
sb
,
FM_MOUNT
)))
{
jERROR
(
1
,
(
"jfs_mount: updateSuper failed w/rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_mount: updateSuper failed w/rc = %d"
,
rc
);
lmLogClose
(
sb
,
log
);
JFS_SBI
(
sb
)
->
log
=
0
;
return
rc
;
...
...
@@ -343,15 +335,15 @@ static int chkSuper(struct super_block *sb)
bsize
=
le32_to_cpu
(
j_sb
->
s_bsize
);
#ifdef _JFS_4K
if
(
bsize
!=
PSIZE
)
{
j
ERROR
(
1
,
(
"Currently only 4K block size supported!
\n
"
)
);
j
fs_err
(
"Currently only 4K block size supported!"
);
rc
=
EINVAL
;
goto
out
;
}
#endif
/* _JFS_4K */
j
FYI
(
1
,
(
"superblock: flag:0x%08x state:0x%08x size:0x%Lx
\n
"
,
j
fs_info
(
"superblock: flag:0x%08x state:0x%08x size:0x%Lx
"
,
le32_to_cpu
(
j_sb
->
s_flag
),
le32_to_cpu
(
j_sb
->
s_state
),
(
unsigned
long
long
)
le64_to_cpu
(
j_sb
->
s_size
))
)
;
(
unsigned
long
long
)
le64_to_cpu
(
j_sb
->
s_size
));
/* validate the descriptors for Secondary AIM and AIT */
if
((
j_sb
->
s_flag
&
cpu_to_le32
(
JFS_BAD_SAIT
))
!=
...
...
@@ -375,15 +367,11 @@ static int chkSuper(struct super_block *sb)
if
((
j_sb
->
s_flag
&
cpu_to_le32
(
JFS_GROUPCOMMIT
))
!=
cpu_to_le32
(
JFS_GROUPCOMMIT
))
j_sb
->
s_flag
|=
cpu_to_le32
(
JFS_GROUPCOMMIT
);
jFYI
(
0
,
(
"superblock: flag:0x%08x state:0x%08x size:0x%Lx
\n
"
,
le32_to_cpu
(
j_sb
->
s_flag
),
le32_to_cpu
(
j_sb
->
s_state
),
(
unsigned
long
long
)
le64_to_cpu
(
j_sb
->
s_size
)));
/* validate fs state */
if
(
j_sb
->
s_state
!=
cpu_to_le32
(
FM_CLEAN
)
&&
!
(
sb
->
s_flags
&
MS_RDONLY
))
{
jERROR
(
1
,
(
"jfs_mount: Mount Failure: File System Dirty.
\n
"
));
jfs_err
(
"jfs_mount: Mount Failure: File System Dirty."
);
rc
=
EINVAL
;
goto
out
;
}
...
...
fs/jfs/jfs_txnmgr.c
View file @
6e5f0131
...
...
@@ -214,7 +214,7 @@ static lid_t txLockAlloc(void)
TxAnchor
.
freelock
=
TxLock
[
lid
].
next
;
HIGHWATERMARK
(
stattx
.
maxlid
,
lid
);
if
((
++
TxAnchor
.
tlocksInUse
>
TxLockHWM
)
&&
(
TxAnchor
.
TlocksLow
==
0
))
{
j
EVENT
(
0
,(
"txLockAlloc TlocksLow
\n
"
)
);
j
fs_info
(
"txLockAlloc TlocksLow"
);
TxAnchor
.
TlocksLow
=
1
;
wake_up
(
&
jfs_sync_thread_wait
);
}
...
...
@@ -228,7 +228,7 @@ static void txLockFree(lid_t lid)
TxAnchor
.
freelock
=
lid
;
TxAnchor
.
tlocksInUse
--
;
if
(
TxAnchor
.
TlocksLow
&&
(
TxAnchor
.
tlocksInUse
<
TxLockLWM
))
{
j
EVENT
(
0
,(
"txLockFree TlocksLow no more
\n
"
)
);
j
fs_info
(
"txLockFree TlocksLow no more"
);
TxAnchor
.
TlocksLow
=
0
;
TXN_WAKEUP
(
&
TxAnchor
.
lowlockwait
);
}
...
...
@@ -336,7 +336,7 @@ tid_t txBegin(struct super_block *sb, int flag)
struct
tblock
*
tblk
;
struct
jfs_log
*
log
;
j
FYI
(
1
,
(
"txBegin: flag = 0x%x
\n
"
,
flag
)
);
j
fs_info
(
"txBegin: flag = 0x%x"
,
flag
);
log
=
JFS_SBI
(
sb
)
->
log
;
TXN_LOCK
();
...
...
@@ -372,7 +372,7 @@ tid_t txBegin(struct super_block *sb, int flag)
* allocate transaction id/block
*/
if
((
t
=
TxAnchor
.
freetid
)
==
0
)
{
j
FYI
(
1
,
(
"txBegin: waiting for free tid
\n
"
)
);
j
fs_info
(
"txBegin: waiting for free tid"
);
INCREMENT
(
TxStat
.
txBegin_freetid
);
TXN_SLEEP
(
&
TxAnchor
.
freewait
);
goto
retry
;
...
...
@@ -382,7 +382,7 @@ tid_t txBegin(struct super_block *sb, int flag)
if
((
tblk
->
next
==
0
)
&&
(
current
!=
jfsCommitTask
))
{
/* Save one tblk for jfsCommit thread */
j
FYI
(
1
,
(
"txBegin: waiting for free tid
\n
"
)
);
j
fs_info
(
"txBegin: waiting for free tid"
);
INCREMENT
(
TxStat
.
txBegin_freetid
);
TXN_SLEEP
(
&
TxAnchor
.
freewait
);
goto
retry
;
...
...
@@ -413,7 +413,7 @@ tid_t txBegin(struct super_block *sb, int flag)
TXN_UNLOCK
();
j
FYI
(
1
,
(
"txBegin: returning tid = %d
\n
"
,
t
)
);
j
fs_info
(
"txBegin: returning tid = %d"
,
t
);
return
t
;
}
...
...
@@ -476,7 +476,7 @@ void txEnd(tid_t tid)
struct
tblock
*
tblk
=
tid_to_tblock
(
tid
);
struct
jfs_log
*
log
;
j
FYI
(
1
,
(
"txEnd: tid = %d
\n
"
,
tid
)
);
j
fs_info
(
"txEnd: tid = %d"
,
tid
);
TXN_LOCK
();
/*
...
...
@@ -496,9 +496,7 @@ void txEnd(tid_t tid)
* routine.
*/
if
(
tblk
->
flag
&
tblkGC_LAZY
)
{
jFYI
(
1
,
(
"txEnd called w/lazy tid: %d, tblk = 0x%p
\n
"
,
tid
,
tblk
));
jfs_info
(
"txEnd called w/lazy tid: %d, tblk = 0x%p"
,
tid
,
tblk
);
TXN_UNLOCK
();
spin_lock_irq
(
&
log
->
gclock
);
// LOGGC_LOCK
...
...
@@ -507,7 +505,7 @@ void txEnd(tid_t tid)
return
;
}
j
FYI
(
1
,
(
"txEnd: tid: %d, tblk = 0x%p
\n
"
,
tid
,
tblk
)
);
j
fs_info
(
"txEnd: tid: %d, tblk = 0x%p"
,
tid
,
tblk
);
assert
(
tblk
->
next
==
0
);
...
...
@@ -529,7 +527,7 @@ void txEnd(tid_t tid)
/* forward log syncpt */
/* lmSync(log); */
j
FYI
(
1
,
(
" log barrier off: 0x%x
\n
"
,
log
->
lsn
)
);
j
fs_info
(
" log barrier off: 0x%x"
,
log
->
lsn
);
/* enable new transactions start */
clear_bit
(
log_SYNCBARRIER
,
&
log
->
flag
);
...
...
@@ -544,7 +542,6 @@ void txEnd(tid_t tid)
TXN_WAKEUP
(
&
TxAnchor
.
freewait
);
TXN_UNLOCK
();
jFYI
(
1
,
(
"txEnd: exitting
\n
"
));
}
...
...
@@ -589,8 +586,7 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
if
(
lid
==
0
)
goto
allocateLock
;
jFYI
(
1
,
(
"txLock: tid:%d ip:0x%p mp:0x%p lid:%d
\n
"
,
tid
,
ip
,
mp
,
lid
));
jfs_info
(
"txLock: tid:%d ip:0x%p mp:0x%p lid:%d"
,
tid
,
ip
,
mp
,
lid
);
/* is page locked by the requester transaction ? */
tlck
=
lid_to_tlock
(
lid
);
...
...
@@ -676,9 +672,8 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
mark_metapage_dirty
(
mp
);
atomic_inc
(
&
mp
->
nohomeok
);
jFYI
(
1
,
(
"locking mp = 0x%p, nohomeok = %d tid = %d tlck = 0x%p
\n
"
,
mp
,
atomic_read
(
&
mp
->
nohomeok
),
tid
,
tlck
));
jfs_info
(
"locking mp = 0x%p, nohomeok = %d tid = %d tlck = 0x%p"
,
mp
,
atomic_read
(
&
mp
->
nohomeok
),
tid
,
tlck
);
/* if anonymous transaction, and buffer is on the group
* commit synclist, mark inode to show this. This will
...
...
@@ -774,7 +769,7 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
break
;
default:
j
ERROR
(
1
,
(
"UFO tlock:0x%p
\n
"
,
tlck
)
);
j
fs_err
(
"UFO tlock:0x%p"
,
tlck
);
}
/*
...
...
@@ -794,7 +789,7 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
/* Only locks on ipimap or ipaimap should reach here */
/* assert(jfs_ip->fileset == AGGREGATE_I); */
if
(
jfs_ip
->
fileset
!=
AGGREGATE_I
)
{
j
ERROR
(
1
,
(
"txLock: trying to lock locked page!
\n
"
)
);
j
fs_err
(
"txLock: trying to lock locked page!"
);
dump_mem
(
"ip"
,
ip
,
sizeof
(
struct
inode
));
dump_mem
(
"mp"
,
mp
,
sizeof
(
struct
metapage
));
dump_mem
(
"Locker's tblk"
,
tid_to_tblock
(
tid
),
...
...
@@ -805,10 +800,10 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
INCREMENT
(
stattx
.
waitlock
);
/* statistics */
release_metapage
(
mp
);
j
EVENT
(
0
,
(
"txLock: in waitLock, tid = %d, xtid = %d, lid = %d
\n
"
,
tid
,
xtid
,
lid
)
);
j
fs_info
(
"txLock: in waitLock, tid = %d, xtid = %d, lid = %d
"
,
tid
,
xtid
,
lid
);
TXN_SLEEP_DROP_LOCK
(
&
tid_to_tblock
(
xtid
)
->
waitor
);
j
EVENT
(
0
,
(
"txLock: awakened tid = %d, lid = %d
\n
"
,
tid
,
lid
)
);
j
fs_info
(
"txLock: awakened tid = %d, lid = %d"
,
tid
,
lid
);
return
NULL
;
}
...
...
@@ -869,7 +864,7 @@ static void txUnlock(struct tblock * tblk)
struct
jfs_log
*
log
;
int
difft
,
diffp
;
j
FYI
(
1
,
(
"txUnlock: tblk = 0x%p
\n
"
,
tblk
)
);
j
fs_info
(
"txUnlock: tblk = 0x%p"
,
tblk
);
log
=
JFS_SBI
(
tblk
->
sb
)
->
log
;
/*
...
...
@@ -879,7 +874,7 @@ static void txUnlock(struct tblock * tblk)
tlck
=
lid_to_tlock
(
lid
);
next
=
tlck
->
next
;
j
FYI
(
1
,
(
"unlocking lid = %d, tlck = 0x%p
\n
"
,
lid
,
tlck
)
);
j
fs_info
(
"unlocking lid = %d, tlck = 0x%p"
,
lid
,
tlck
);
/* unbind page from tlock */
if
((
mp
=
tlck
->
mp
)
!=
NULL
&&
...
...
@@ -1113,7 +1108,7 @@ int txCommit(tid_t tid, /* transaction identifier */
ino_t
top
;
struct
super_block
*
sb
;
j
FYI
(
1
,
(
"txCommit, tid = %d, flag = %d
\n
"
,
tid
,
flag
)
);
j
fs_info
(
"txCommit, tid = %d, flag = %d"
,
tid
,
flag
);
/* is read-only file system ? */
if
(
isReadOnly
(
iplist
[
0
]))
{
rc
=
EROFS
;
...
...
@@ -1312,7 +1307,7 @@ int txCommit(tid_t tid, /* transaction identifier */
rc
=
rc1
;
TheEnd:
j
FYI
(
1
,
(
"txCommit: tid = %d, returning %d
\n
"
,
tid
,
rc
)
);
j
fs_info
(
"txCommit: tid = %d, returning %d"
,
tid
,
rc
);
return
rc
;
}
...
...
@@ -1376,7 +1371,7 @@ static int txLog(struct jfs_log * log, struct tblock * tblk, struct commit * cd)
break
;
default:
j
ERROR
(
1
,
(
"UFO tlock:0x%p
\n
"
,
tlck
)
);
j
fs_err
(
"UFO tlock:0x%p"
,
tlck
);
}
if
(
tlck
->
mp
)
release_metapage
(
tlck
->
mp
);
...
...
@@ -1462,9 +1457,8 @@ int diLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
/* mark page as homeward bound */
tlck
->
flag
|=
tlckWRITEPAGE
;
}
else
{
jERROR
(
2
,
(
"diLog: UFO type tlck:0x%p
\n
"
,
tlck
));
}
}
else
jfs_err
(
"diLog: UFO type tlck:0x%p"
,
tlck
);
#ifdef _JFS_WIP
/*
* alloc/free external EA extent
...
...
@@ -1754,9 +1748,8 @@ void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
xadlock
->
xdlist
=
&
p
->
xad
[
lwm
];
tblk
->
xflag
&=
~
COMMIT_LAZY
;
}
jFYI
(
1
,
(
"xtLog: alloc ip:0x%p mp:0x%p tlck:0x%p lwm:%d count:%d
\n
"
,
tlck
->
ip
,
mp
,
tlck
,
lwm
,
xadlock
->
count
));
jfs_info
(
"xtLog: alloc ip:0x%p mp:0x%p tlck:0x%p lwm:%d "
"count:%d"
,
tlck
->
ip
,
mp
,
tlck
,
lwm
,
xadlock
->
count
);
maplock
->
index
=
1
;
...
...
@@ -1848,9 +1841,8 @@ void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
xadlock
->
xdlist
=
&
p
->
xad
[
XTENTRYSTART
];
tblk
->
xflag
&=
~
COMMIT_LAZY
;
}
jFYI
(
1
,
(
"xtLog: free ip:0x%p mp:0x%p count:%d lwm:2
\n
"
,
tlck
->
ip
,
mp
,
xadlock
->
count
));
jfs_info
(
"xtLog: free ip:0x%p mp:0x%p count:%d lwm:2"
,
tlck
->
ip
,
mp
,
xadlock
->
count
);
maplock
->
index
=
1
;
...
...
@@ -1978,9 +1970,9 @@ void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
xadlock
->
count
=
next
-
lwm
;
xadlock
->
xdlist
=
&
p
->
xad
[
lwm
];
j
FYI
(
1
,
(
"xtLog: alloc ip:0x%p mp:0x%p count:%d lwm:%d next:%d
\n
"
,
tlck
->
ip
,
mp
,
xadlock
->
count
,
lwm
,
next
)
);
j
fs_info
(
"xtLog: alloc ip:0x%p mp:0x%p count:%d "
"lwm:%d next:%d
"
,
tlck
->
ip
,
mp
,
xadlock
->
count
,
lwm
,
next
);
maplock
->
index
++
;
xadlock
++
;
}
...
...
@@ -2002,9 +1994,8 @@ void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
pxdlock
->
count
=
1
;
pxdlock
->
pxd
=
tpxd
;
jFYI
(
1
,
(
"xtLog: truncate ip:0x%p mp:0x%p count:%d hwm:%d
\n
"
,
ip
,
mp
,
pxdlock
->
count
,
hwm
));
jfs_info
(
"xtLog: truncate ip:0x%p mp:0x%p count:%d "
"hwm:%d"
,
ip
,
mp
,
pxdlock
->
count
,
hwm
);
maplock
->
index
++
;
xadlock
++
;
}
...
...
@@ -2022,9 +2013,9 @@ void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
xadlock
->
count
=
hwm
-
next
+
1
;
xadlock
->
xdlist
=
&
p
->
xad
[
next
];
j
FYI
(
1
,
(
"xtLog: free ip:0x%p mp:0x%p count:%d next:%d hwm:%d
\n
"
,
tlck
->
ip
,
mp
,
xadlock
->
count
,
next
,
hwm
)
);
j
fs_info
(
"xtLog: free ip:0x%p mp:0x%p count:%d "
"next:%d hwm:%d
"
,
tlck
->
ip
,
mp
,
xadlock
->
count
,
next
,
hwm
);
maplock
->
index
++
;
}
...
...
@@ -2111,9 +2102,9 @@ void mapLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
lrd
->
log
.
updatemap
.
pxd
=
pxdlock
->
pxd
;
lrd
->
backchain
=
cpu_to_le32
(
lmLog
(
log
,
tblk
,
lrd
,
NULL
));
j
FYI
(
1
,
(
"mapLog: xaddr:0x%lx xlen:0x%x
\n
"
,
j
fs_info
(
"mapLog: xaddr:0x%lx xlen:0x%x
"
,
(
ulong
)
addressPXD
(
&
pxdlock
->
pxd
),
lengthPXD
(
&
pxdlock
->
pxd
))
)
;
lengthPXD
(
&
pxdlock
->
pxd
));
}
/* update bmap */
...
...
@@ -2429,9 +2420,8 @@ static void txAllocPMap(struct inode *ip, struct maplock * maplock,
dbUpdatePMap
(
ipbmap
,
FALSE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
xad
->
flag
&=
~
(
XAD_NEW
|
XAD_EXTENDED
);
jFYI
(
1
,
(
"allocPMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"allocPMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
}
}
else
if
(
maplock
->
flag
&
mlckALLOCPXD
)
{
...
...
@@ -2439,9 +2429,7 @@ static void txAllocPMap(struct inode *ip, struct maplock * maplock,
xaddr
=
addressPXD
(
&
pxdlock
->
pxd
);
xlen
=
lengthPXD
(
&
pxdlock
->
pxd
);
dbUpdatePMap
(
ipbmap
,
FALSE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
jFYI
(
1
,
(
"allocPMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"allocPMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
else
{
/* (maplock->flag & mlckALLOCPXDLIST) */
pxdlistlock
=
(
struct
xdlistlock
*
)
maplock
;
...
...
@@ -2451,9 +2439,8 @@ static void txAllocPMap(struct inode *ip, struct maplock * maplock,
xlen
=
lengthPXD
(
pxd
);
dbUpdatePMap
(
ipbmap
,
FALSE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
jFYI
(
1
,
(
"allocPMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"allocPMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
}
}
...
...
@@ -2479,9 +2466,8 @@ void txFreeMap(struct inode *ip,
pxd_t
*
pxd
;
int
n
;
jFYI
(
1
,
(
"txFreeMap: tblk:0x%p maplock:0x%p maptype:0x%x
\n
"
,
tblk
,
maplock
,
maptype
));
jfs_info
(
"txFreeMap: tblk:0x%p maplock:0x%p maptype:0x%x"
,
tblk
,
maplock
,
maptype
);
/*
* free from persistent map;
...
...
@@ -2496,9 +2482,9 @@ void txFreeMap(struct inode *ip,
xlen
=
lengthXAD
(
xad
);
dbUpdatePMap
(
ipbmap
,
TRUE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
j
FYI
(
1
,
(
"freePMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
)
);
j
fs_info
(
"freePMap: xaddr:0x%lx "
"xlen:%d
"
,
(
ulong
)
xaddr
,
xlen
);
}
}
}
else
if
(
maplock
->
flag
&
mlckFREEPXD
)
{
...
...
@@ -2507,9 +2493,8 @@ void txFreeMap(struct inode *ip,
xlen
=
lengthPXD
(
&
pxdlock
->
pxd
);
dbUpdatePMap
(
ipbmap
,
TRUE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
jFYI
(
1
,
(
"freePMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"freePMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
else
{
/* (maplock->flag & mlckALLOCPXDLIST) */
pxdlistlock
=
(
struct
xdlistlock
*
)
maplock
;
...
...
@@ -2519,9 +2504,8 @@ void txFreeMap(struct inode *ip,
xlen
=
lengthPXD
(
pxd
);
dbUpdatePMap
(
ipbmap
,
TRUE
,
xaddr
,
(
s64
)
xlen
,
tblk
);
jFYI
(
1
,
(
"freePMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"freePMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
}
}
...
...
@@ -2538,18 +2522,16 @@ void txFreeMap(struct inode *ip,
xlen
=
lengthXAD
(
xad
);
dbFree
(
ip
,
xaddr
,
(
s64
)
xlen
);
xad
->
flag
=
0
;
jFYI
(
1
,
(
"freeWMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"freeWMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
}
else
if
(
maplock
->
flag
&
mlckFREEPXD
)
{
pxdlock
=
(
struct
pxd_lock
*
)
maplock
;
xaddr
=
addressPXD
(
&
pxdlock
->
pxd
);
xlen
=
lengthPXD
(
&
pxdlock
->
pxd
);
dbFree
(
ip
,
xaddr
,
(
s64
)
xlen
);
jFYI
(
1
,
(
"freeWMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"freeWMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
else
{
/* (maplock->flag & mlckFREEPXDLIST) */
pxdlistlock
=
(
struct
xdlistlock
*
)
maplock
;
...
...
@@ -2558,9 +2540,8 @@ void txFreeMap(struct inode *ip,
xaddr
=
addressPXD
(
pxd
);
xlen
=
lengthPXD
(
pxd
);
dbFree
(
ip
,
xaddr
,
(
s64
)
xlen
);
jFYI
(
1
,
(
"freeWMap: xaddr:0x%lx xlen:%d
\n
"
,
(
ulong
)
xaddr
,
xlen
));
jfs_info
(
"freeWMap: xaddr:0x%lx xlen:%d"
,
(
ulong
)
xaddr
,
xlen
);
}
}
}
...
...
@@ -2625,7 +2606,7 @@ void txAbort(tid_t tid, int dirty)
struct
metapage
*
mp
;
struct
tblock
*
tblk
=
tid_to_tblock
(
tid
);
j
EVENT
(
1
,
(
"txAbort: tid:%d dirty:0x%x
\n
"
,
tid
,
dirty
)
);
j
fs_warn
(
"txAbort: tid:%d dirty:0x%x"
,
tid
,
dirty
);
/*
* free tlocks of the transaction
...
...
@@ -2688,7 +2669,7 @@ void txAbortCommit(struct commit * cd, int exval)
struct
metapage
*
mp
;
assert
(
exval
==
EIO
||
exval
==
ENOMEM
);
j
EVENT
(
1
,
(
"txAbortCommit: cd:0x%p
\n
"
,
cd
)
);
j
fs_warn
(
"txAbortCommit: cd:0x%p"
,
cd
);
/*
* free tlocks of the transaction
...
...
@@ -2743,12 +2724,11 @@ void txLazyCommit(struct tblock * tblk)
((
tblk
->
flag
&
tblkGC_UNLOCKED
)
==
0
))
{
/* We must have gotten ahead of the user thread
*/
jFYI
(
1
,
(
"jfs_lazycommit: tblk 0x%p not unlocked
\n
"
,
tblk
));
jfs_info
(
"jfs_lazycommit: tblk 0x%p not unlocked"
,
tblk
);
schedule
();
}
j
FYI
(
1
,
(
"txLazyCommit: processing tblk 0x%p
\n
"
,
tblk
)
);
j
fs_info
(
"txLazyCommit: processing tblk 0x%p"
,
tblk
);
txUpdateMap
(
tblk
);
...
...
@@ -2775,7 +2755,7 @@ void txLazyCommit(struct tblock * tblk)
}
else
spin_unlock_irq
(
&
log
->
gclock
);
// LOGGC_UNLOCK
j
FYI
(
1
,
(
"txLazyCommit: done: tblk = 0x%p
\n
"
,
tblk
)
);
j
fs_info
(
"txLazyCommit: done: tblk = 0x%p"
,
tblk
);
}
/*
...
...
@@ -2861,9 +2841,9 @@ int jfs_lazycommit(void *arg)
}
while
(
!
jfs_stop_threads
);
if
(
TxAnchor
.
unlock_queue
)
j
ERROR
(
1
,
(
"jfs_lazycommit being killed with pending transactions!
\n
"
)
);
j
fs_err
(
"jfs_lazycommit being killed w/pending transactions!"
);
else
j
FYI
(
1
,
(
"jfs_lazycommit being killed
\n
"
)
);
j
fs_info
(
"jfs_lazycommit being killed
\n
"
);
complete
(
&
jfsIOwait
);
return
0
;
}
...
...
@@ -3077,7 +3057,7 @@ int jfs_sync(void *arg)
}
}
while
(
!
jfs_stop_threads
);
j
FYI
(
1
,
(
"jfs_sync being killed
\n
"
)
);
j
fs_info
(
"jfs_sync being killed"
);
complete
(
&
jfsIOwait
);
return
0
;
}
...
...
fs/jfs/jfs_umount.c
View file @
6e5f0131
...
...
@@ -58,7 +58,7 @@ int jfs_umount(struct super_block *sb)
struct
jfs_log
*
log
;
int
rc
=
0
;
j
FYI
(
1
,
(
"
\n
UnMount JFS: sb:0x%p
\n
"
,
sb
)
);
j
fs_info
(
"UnMount JFS: sb:0x%p"
,
sb
);
/*
* update superblock and close log
...
...
@@ -74,7 +74,6 @@ int jfs_umount(struct super_block *sb)
/*
* close fileset inode allocation map (aka fileset inode)
*/
jEVENT
(
0
,
(
"jfs_umount: close ipimap:0x%p
\n
"
,
ipimap
));
diUnmount
(
ipimap
,
0
);
diFreeSpecial
(
ipimap
);
...
...
@@ -85,7 +84,6 @@ int jfs_umount(struct super_block *sb)
*/
ipaimap2
=
sbi
->
ipaimap2
;
if
(
ipaimap2
)
{
jEVENT
(
0
,
(
"jfs_umount: close ipaimap2:0x%p
\n
"
,
ipaimap2
));
diUnmount
(
ipaimap2
,
0
);
diFreeSpecial
(
ipaimap2
);
sbi
->
ipaimap2
=
NULL
;
...
...
@@ -95,7 +93,6 @@ int jfs_umount(struct super_block *sb)
* close aggregate inode allocation map
*/
ipaimap
=
sbi
->
ipaimap
;
jEVENT
(
0
,
(
"jfs_umount: close ipaimap:0x%p
\n
"
,
ipaimap
));
diUnmount
(
ipaimap
,
0
);
diFreeSpecial
(
ipaimap
);
sbi
->
ipaimap
=
NULL
;
...
...
@@ -103,7 +100,6 @@ int jfs_umount(struct super_block *sb)
/*
* close aggregate block allocation map
*/
jEVENT
(
0
,
(
"jfs_umount: close ipbmap:%p
\n
"
,
ipbmap
));
dbUnmount
(
ipbmap
,
0
);
diFreeSpecial
(
ipbmap
);
...
...
@@ -134,7 +130,7 @@ int jfs_umount(struct super_block *sb)
*/
rc
=
lmLogClose
(
sb
,
log
);
}
j
FYI
(
0
,
(
" UnMount JFS Complete: %d
\n
"
,
rc
)
);
j
fs_info
(
"UnMount JFS Complete: rc = %d"
,
rc
);
return
rc
;
}
...
...
fs/jfs/jfs_unicode.c
View file @
6e5f0131
...
...
@@ -47,7 +47,6 @@ int jfs_strfromUCS_le(char *to, const wchar_t * from, /* LITTLE ENDIAN */
}
}
to
[
outlen
]
=
0
;
jEVENT
(
0
,
(
"jfs_strfromUCS returning %d - '%s'
\n
"
,
outlen
,
to
));
return
outlen
;
}
...
...
@@ -63,22 +62,17 @@ int jfs_strtoUCS(wchar_t * to,
int
charlen
;
int
i
;
jEVENT
(
0
,
(
"jfs_strtoUCS - '%s'
\n
"
,
from
));
for
(
i
=
0
;
len
&&
*
from
;
i
++
,
from
+=
charlen
,
len
-=
charlen
)
{
charlen
=
codepage
->
char2uni
(
from
,
len
,
&
to
[
i
]);
if
(
charlen
<
1
)
{
jERROR
(
1
,
(
"jfs_strtoUCS: char2uni returned %d.
\n
"
,
charlen
));
jERROR
(
1
,
(
"charset = %s, char = 0x%x
\n
"
,
codepage
->
charset
,
(
unsigned
char
)
*
from
));
jfs_err
(
"jfs_strtoUCS: char2uni returned %d."
,
charlen
);
jfs_err
(
"charset = %s, char = 0x%x"
,
codepage
->
charset
,
(
unsigned
char
)
*
from
);
to
[
i
]
=
0x003f
;
/* a question mark */
charlen
=
1
;
}
}
jEVENT
(
0
,
(
" returning %d
\n
"
,
i
));
to
[
i
]
=
0
;
return
i
;
}
...
...
fs/jfs/jfs_xtree.c
View file @
6e5f0131
...
...
@@ -69,7 +69,7 @@
(le16_to_cpu((P)->header.nextindex) > le16_to_cpu((P)->header.maxentry)) ||\
(le16_to_cpu((P)->header.maxentry) > (((BN)==0)?XTROOTMAXSLOT:PSIZE>>L2XTSLOTSIZE)))\
{\
j
ERROR(1,("XT_GETPAGE: xtree page corrupt\n")
);\
j
fs_err("XT_GETPAGE: xtree page corrupt"
);\
BT_PUTPAGE(MP);\
updateSuper((IP)->i_sb, FM_DIRTY);\
MP = NULL;\
...
...
@@ -169,9 +169,8 @@ int xtLookup(struct inode *ip, s64 lstart,
size
=
((
u64
)
ip
->
i_size
+
(
JFS_SBI
(
ip
->
i_sb
)
->
bsize
-
1
))
>>
JFS_SBI
(
ip
->
i_sb
)
->
l2bsize
;
if
(
lstart
>=
size
)
{
jERROR
(
1
,
(
"xtLookup: lstart (0x%lx) >= size (0x%lx)
\n
"
,
(
ulong
)
lstart
,
(
ulong
)
size
));
jfs_err
(
"xtLookup: lstart (0x%lx) >= size (0x%lx)"
,
(
ulong
)
lstart
,
(
ulong
)
size
);
return
0
;
}
}
...
...
@@ -181,7 +180,7 @@ int xtLookup(struct inode *ip, s64 lstart,
*/
//search:
if
((
rc
=
xtSearch
(
ip
,
lstart
,
&
cmp
,
&
btstack
,
0
)))
{
j
ERROR
(
1
,
(
"xtLookup: xtSearch returned %d
\n
"
,
rc
)
);
j
fs_err
(
"xtLookup: xtSearch returned %d"
,
rc
);
return
rc
;
}
...
...
@@ -198,10 +197,8 @@ int xtLookup(struct inode *ip, s64 lstart,
* lstart is a page start address,
* i.e., lstart cannot start in a hole;
*/
if
(
cmp
)
{
jFYI
(
1
,
(
"xtLookup: cmp = %d
\n
"
,
cmp
));
if
(
cmp
)
goto
out
;
}
/*
* lxd covered by xad
...
...
@@ -212,10 +209,6 @@ int xtLookup(struct inode *ip, s64 lstart,
xend
=
xoff
+
xlen
;
xaddr
=
addressXAD
(
xad
);
jEVENT
(
0
,
(
"index = %d, xoff = 0x%lx, xlen = 0x%x, xaddr = 0x%lx
\n
"
,
index
,
(
ulong
)
xoff
,
xlen
,
(
ulong
)
xaddr
));
/* initialize new pxd */
*
pflag
=
xad
->
flag
;
*
paddr
=
xaddr
+
(
lstart
-
xoff
);
...
...
@@ -802,8 +795,7 @@ int xtInsert(tid_t tid, /* transaction id */
struct
tlock
*
tlck
;
struct
xtlock
*
xtlck
;
jFYI
(
1
,
(
"xtInsert: nxoff:0x%lx nxlen:0x%x
\n
"
,
(
ulong
)
xoff
,
xlen
));
jfs_info
(
"xtInsert: nxoff:0x%lx nxlen:0x%x"
,
(
ulong
)
xoff
,
xlen
);
/*
* search for the entry location at which to insert:
...
...
@@ -1248,8 +1240,7 @@ xtSplitPage(tid_t tid, struct inode *ip,
if
(
rmp
==
NULL
)
return
EIO
;
jEVENT
(
0
,
(
"xtSplitPage: ip:0x%p smp:0x%p rmp:0x%p
\n
"
,
ip
,
smp
,
rmp
));
jfs_info
(
"xtSplitPage: ip:0x%p smp:0x%p rmp:0x%p"
,
ip
,
smp
,
rmp
);
BT_MARK_DIRTY
(
rmp
,
ip
);
/*
...
...
@@ -1324,7 +1315,7 @@ xtSplitPage(tid_t tid, struct inode *ip,
ip
->
i_blocks
+=
LBLK2PBLK
(
ip
->
i_sb
,
lengthPXD
(
pxd
));
j
EVENT
(
0
,
(
"xtSplitPage: sp:0x%p rp:0x%p
\n
"
,
sp
,
rp
)
);
j
fs_info
(
"xtSplitPage: sp:0x%p rp:0x%p"
,
sp
,
rp
);
return
0
;
}
...
...
@@ -1440,7 +1431,7 @@ xtSplitPage(tid_t tid, struct inode *ip,
ip
->
i_blocks
+=
LBLK2PBLK
(
ip
->
i_sb
,
lengthPXD
(
pxd
));
j
EVENT
(
0
,
(
"xtSplitPage: sp:0x%p rp:0x%p
\n
"
,
sp
,
rp
)
);
j
fs_info
(
"xtSplitPage: sp:0x%p rp:0x%p"
,
sp
,
rp
);
return
rc
;
}
...
...
@@ -1496,7 +1487,7 @@ xtSplitRoot(tid_t tid,
if
(
rmp
==
NULL
)
return
EIO
;
j
EVENT
(
0
,
(
"xtSplitRoot: ip:0x%p rmp:0x%p
\n
"
,
ip
,
rmp
)
);
j
fs_info
(
"xtSplitRoot: ip:0x%p rmp:0x%p"
,
ip
,
rmp
);
/*
* acquire a transaction lock on the new right page;
...
...
@@ -1581,7 +1572,7 @@ xtSplitRoot(tid_t tid,
ip
->
i_blocks
+=
LBLK2PBLK
(
ip
->
i_sb
,
lengthPXD
(
pxd
));
j
EVENT
(
0
,
(
"xtSplitRoot: sp:0x%p rp:0x%p
\n
"
,
sp
,
rp
)
);
j
fs_info
(
"xtSplitRoot: sp:0x%p rp:0x%p"
,
sp
,
rp
);
return
0
;
}
...
...
@@ -1615,8 +1606,7 @@ int xtExtend(tid_t tid, /* transaction id */
struct
xtlock
*
xtlck
=
0
;
int
rootsplit
=
0
;
jFYI
(
1
,
(
"xtExtend: nxoff:0x%lx nxlen:0x%x
\n
"
,
(
ulong
)
xoff
,
xlen
));
jfs_info
(
"xtExtend: nxoff:0x%lx nxlen:0x%x"
,
(
ulong
)
xoff
,
xlen
);
/* there must exist extent to be extended */
if
((
rc
=
xtSearch
(
ip
,
xoff
-
1
,
&
cmp
,
&
btstack
,
XT_INSERT
)))
...
...
@@ -1628,9 +1618,6 @@ int xtExtend(tid_t tid, /* transaction id */
/* extension must be contiguous */
xad
=
&
p
->
xad
[
index
];
jFYI
(
0
,
(
"xtExtend: xoff:0x%lx xlen:0x%x xaddr:0x%lx
\n
"
,
(
ulong
)
offsetXAD
(
xad
),
lengthXAD
(
xad
),
(
ulong
)
addressXAD
(
xad
)));
assert
((
offsetXAD
(
xad
)
+
lengthXAD
(
xad
))
==
xoff
);
/*
...
...
@@ -1893,10 +1880,6 @@ printf("xtTailgate: xoff:0x%lx xlen:0x%x xaddr:0x%lx\n",
PXDlength
(
&
pxdlock
->
pxd
,
rlen
);
pxdlock
->
index
=
1
;
}
jEVENT
(
0
,
(
"xtTailgate: free extent xaddr:0x%lx xlen:0x%x
\n
"
,
(
ulong
)
addressPXD
(
&
pxdlock
->
pxd
),
lengthPXD
(
&
pxdlock
->
pxd
)));
}
else
/* free from WMAP */
dbFree
(
ip
,
addressXAD
(
xad
)
+
llen
,
(
s64
)
rlen
);
...
...
@@ -2408,9 +2391,8 @@ int xtAppend(tid_t tid, /* transaction id */
xaddr
=
*
xaddrp
;
xlen
=
*
xlenp
;
jEVENT
(
0
,
(
"xtAppend: xoff:0x%lx maxblocks:%d xlen:%d xaddr:0x%lx
\n
"
,
(
ulong
)
xoff
,
maxblocks
,
xlen
,
(
ulong
)
xaddr
));
jfs_info
(
"xtAppend: xoff:0x%lx maxblocks:%d xlen:%d xaddr:0x%lx"
,
(
ulong
)
xoff
,
maxblocks
,
xlen
,
(
ulong
)
xaddr
);
/*
* search for the entry location at which to insert:
...
...
@@ -2747,9 +2729,8 @@ xtDeleteUp(tid_t tid, struct inode *ip,
p
->
header
.
nextindex
=
cpu_to_le16
(
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
);
jEVENT
(
0
,
(
"xtDeleteUp(entry): 0x%lx[%d]
\n
"
,
(
ulong
)
parent
->
bn
,
index
));
jfs_info
(
"xtDeleteUp(entry): 0x%lx[%d]"
,
(
ulong
)
parent
->
bn
,
index
);
}
/* unpin the parent page */
...
...
@@ -2809,10 +2790,8 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
if
(
offset
>=
ip
->
i_size
)
return
ESTALE
;
/* stale extent */
jEVENT
(
0
,
(
"xtRelocate: xtype:%d xoff:0x%lx xlen:0x%x xaddr:0x%lx:0x%lx
\n
"
,
xtype
,
(
ulong
)
xoff
,
xlen
,
(
ulong
)
oxaddr
,
(
ulong
)
nxaddr
));
jfs_info
(
"xtRelocate: xtype:%d xoff:0x%lx xlen:0x%x xaddr:0x%lx:0x%lx"
,
xtype
,
(
ulong
)
xoff
,
xlen
,
(
ulong
)
oxaddr
,
(
ulong
)
nxaddr
);
/*
* 1. get and validate the parent xtpage/xad entry
...
...
@@ -2855,7 +2834,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
*/
xad
=
&
pp
->
xad
[
index
];
}
j
EVENT
(
0
,
(
"xtRelocate: parent xad entry validated.
\n
"
)
);
j
fs_info
(
"xtRelocate: parent xad entry validated."
);
/*
* 2. relocate the extent
...
...
@@ -2926,7 +2905,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
/* get back parent page */
rc
=
xtSearch
(
ip
,
xoff
,
&
cmp
,
&
btstack
,
0
);
XT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
pmp
,
pp
,
index
);
j
EVENT
(
0
,
(
"xtRelocate: target data extent relocated.
\n
"
)
);
j
fs_info
(
"xtRelocate: target data extent relocated."
);
}
else
{
/* (xtype == XTPAGE) */
/*
...
...
@@ -3026,7 +3005,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
/* unpin the target page to new homeward bound */
XT_PUTPAGE
(
mp
);
j
EVENT
(
0
,
(
"xtRelocate: target xtpage relocated.
\n
"
)
);
j
fs_info
(
"xtRelocate: target xtpage relocated."
);
}
/*
...
...
@@ -3067,7 +3046,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
* update which will write LOG_REDOPAGE and update bmap for
* allocation of XAD_NEW destination extent;
*/
j
EVENT
(
0
,
(
"xtRelocate: update parent xad entry.
\n
"
)
);
j
fs_info
(
"xtRelocate: update parent xad entry."
);
BT_MARK_DIRTY
(
pmp
,
ip
);
tlck
=
txLock
(
tid
,
ip
,
pmp
,
tlckXTREE
|
tlckGROW
);
xtlck
=
(
struct
xtlock
*
)
&
tlck
->
lock
;
...
...
fs/jfs/namei.c
View file @
6e5f0131
...
...
@@ -70,7 +70,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode)
struct
inode
*
iplist
[
2
];
struct
tblock
*
tblk
;
j
FYI
(
1
,
(
"jfs_create: dip:0x%p name:%s
\n
"
,
dip
,
dentry
->
d_name
.
name
)
);
j
fs_info
(
"jfs_create: dip:0x%p name:%s"
,
dip
,
dentry
->
d_name
.
name
);
/*
* search parent directory for entry/freespace
...
...
@@ -96,7 +96,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode)
down
(
&
JFS_IP
(
ip
)
->
commit_sem
);
if
((
rc
=
dtSearch
(
dip
,
&
dname
,
&
ino
,
&
btstack
,
JFS_CREATE
)))
{
j
ERROR
(
1
,
(
"jfs_create: dtSearch returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_create: dtSearch returned %d"
,
rc
);
goto
out3
;
}
...
...
@@ -118,7 +118,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode)
*/
ino
=
ip
->
i_ino
;
if
((
rc
=
dtInsert
(
tid
,
dip
,
&
dname
,
&
ino
,
&
btstack
)))
{
j
ERROR
(
1
,
(
"jfs_create: dtInsert returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_create: dtInsert returned %d"
,
rc
);
if
(
rc
==
EIO
)
txAbort
(
tid
,
1
);
/* Marks Filesystem dirty */
else
...
...
@@ -159,7 +159,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode)
out1:
j
FYI
(
1
,
(
"jfs_create: rc:%d
\n
"
,
-
rc
)
);
j
fs_info
(
"jfs_create: rc:%d"
,
-
rc
);
return
-
rc
;
}
...
...
@@ -190,7 +190,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
struct
inode
*
iplist
[
2
];
struct
tblock
*
tblk
;
j
FYI
(
1
,
(
"jfs_mkdir: dip:0x%p name:%s
\n
"
,
dip
,
dentry
->
d_name
.
name
)
);
j
fs_info
(
"jfs_mkdir: dip:0x%p name:%s"
,
dip
,
dentry
->
d_name
.
name
);
/* link count overflow on parent directory ? */
if
(
dip
->
i_nlink
==
JFS_LINK_MAX
)
{
...
...
@@ -222,7 +222,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
down
(
&
JFS_IP
(
ip
)
->
commit_sem
);
if
((
rc
=
dtSearch
(
dip
,
&
dname
,
&
ino
,
&
btstack
,
JFS_CREATE
)))
{
j
ERROR
(
1
,
(
"jfs_mkdir: dtSearch returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_mkdir: dtSearch returned %d"
,
rc
);
goto
out3
;
}
...
...
@@ -244,7 +244,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
*/
ino
=
ip
->
i_ino
;
if
((
rc
=
dtInsert
(
tid
,
dip
,
&
dname
,
&
ino
,
&
btstack
)))
{
j
ERROR
(
1
,
(
"jfs_mkdir: dtInsert returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_mkdir: dtInsert returned %d"
,
rc
);
if
(
rc
==
EIO
)
txAbort
(
tid
,
1
);
/* Marks Filesystem dirty */
...
...
@@ -289,7 +289,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
out1:
j
FYI
(
1
,
(
"jfs_mkdir: rc:%d
\n
"
,
-
rc
)
);
j
fs_info
(
"jfs_mkdir: rc:%d"
,
-
rc
);
return
-
rc
;
}
...
...
@@ -322,7 +322,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
struct
inode
*
iplist
[
2
];
struct
tblock
*
tblk
;
j
FYI
(
1
,
(
"jfs_rmdir: dip:0x%p name:%s
\n
"
,
dip
,
dentry
->
d_name
.
name
)
);
j
fs_info
(
"jfs_rmdir: dip:0x%p name:%s"
,
dip
,
dentry
->
d_name
.
name
);
/* directory must be empty to be removed */
if
(
!
dtEmpty
(
ip
))
{
...
...
@@ -351,7 +351,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
*/
ino
=
ip
->
i_ino
;
if
((
rc
=
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
JFS_REMOVE
)))
{
j
ERROR
(
1
,
(
"jfs_rmdir: dtDelete returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_rmdir: dtDelete returned %d"
,
rc
);
if
(
rc
==
EIO
)
txAbort
(
tid
,
1
);
txEnd
(
tid
);
...
...
@@ -411,7 +411,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
free_UCSname
(
&
dname
);
out:
j
FYI
(
1
,
(
"jfs_rmdir: rc:%d
\n
"
,
rc
)
);
j
fs_info
(
"jfs_rmdir: rc:%d"
,
rc
);
return
-
rc
;
}
...
...
@@ -447,7 +447,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
s64
new_size
=
0
;
int
commit_flag
;
j
FYI
(
1
,
(
"jfs_unlink: dip:0x%p name:%s
\n
"
,
dip
,
dentry
->
d_name
.
name
)
);
j
fs_info
(
"jfs_unlink: dip:0x%p name:%s"
,
dip
,
dentry
->
d_name
.
name
);
if
((
rc
=
get_UCSname
(
&
dname
,
dentry
,
JFS_SBI
(
dip
->
i_sb
)
->
nls_tab
)))
goto
out
;
...
...
@@ -467,7 +467,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
*/
ino
=
ip
->
i_ino
;
if
((
rc
=
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
JFS_REMOVE
)))
{
j
ERROR
(
1
,
(
"jfs_unlink: dtDelete returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_unlink: dtDelete returned %d"
,
rc
);
if
(
rc
==
EIO
)
txAbort
(
tid
,
1
);
/* Marks FS Dirty */
txEnd
(
tid
);
...
...
@@ -560,7 +560,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
out1:
free_UCSname
(
&
dname
);
out:
j
FYI
(
1
,
(
"jfs_unlink: rc:%d
\n
"
,
-
rc
)
);
j
fs_info
(
"jfs_unlink: rc:%d"
,
-
rc
);
return
-
rc
;
}
...
...
@@ -593,7 +593,7 @@ s64 commitZeroLink(tid_t tid, struct inode *ip)
int
filetype
;
struct
tblock
*
tblk
;
j
FYI
(
1
,
(
"commitZeroLink: tid = %d, ip = 0x%p
\n
"
,
tid
,
ip
)
);
j
fs_info
(
"commitZeroLink: tid = %d, ip = 0x%p"
,
tid
,
ip
);
filetype
=
ip
->
i_mode
&
S_IFMT
;
switch
(
filetype
)
{
...
...
@@ -661,7 +661,7 @@ int freeZeroLink(struct inode *ip)
int
rc
=
0
;
int
type
;
j
FYI
(
1
,
(
"freeZeroLink: ip = 0x%p
\n
"
,
ip
)
);
j
fs_info
(
"freeZeroLink: ip = 0x%p"
,
ip
);
/* return if not reg or symbolic link or if size is
* already ok.
...
...
@@ -767,9 +767,8 @@ int jfs_link(struct dentry *old_dentry,
struct
btstack
btstack
;
struct
inode
*
iplist
[
2
];
jFYI
(
1
,
(
"jfs_link: %s %s
\n
"
,
old_dentry
->
d_name
.
name
,
dentry
->
d_name
.
name
));
jfs_info
(
"jfs_link: %s %s"
,
old_dentry
->
d_name
.
name
,
dentry
->
d_name
.
name
);
tid
=
txBegin
(
ip
->
i_sb
,
0
);
...
...
@@ -814,7 +813,7 @@ int jfs_link(struct dentry *old_dentry,
up
(
&
JFS_IP
(
dir
)
->
commit_sem
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
j
FYI
(
1
,
(
"jfs_link: rc:%d
\n
"
,
rc
)
);
j
fs_info
(
"jfs_link: rc:%d"
,
rc
);
return
-
rc
;
}
...
...
@@ -855,7 +854,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
struct
inode
*
iplist
[
2
];
j
FYI
(
1
,
(
"jfs_symlink: dip:0x%p name:%s
\n
"
,
dip
,
name
)
);
j
fs_info
(
"jfs_symlink: dip:0x%p name:%s"
,
dip
,
name
);
ssize
=
strlen
(
name
)
+
1
;
...
...
@@ -898,7 +897,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
if
((
rc
=
dtInsert
(
tid
,
dip
,
&
dname
,
&
ino
,
&
btstack
)))
{
j
ERROR
(
1
,
(
"jfs_symlink: dtInsert returned %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_symlink: dtInsert returned %d"
,
rc
);
/* discard ne inode */
goto
out3
;
...
...
@@ -933,15 +932,14 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
if
(
ssize
>
sizeof
(
JFS_IP
(
ip
)
->
i_inline
))
JFS_IP
(
ip
)
->
mode2
&=
~
INLINEEA
;
jFYI
(
1
,
(
"jfs_symlink: fast symlink added ssize:%d name:%s
\n
"
,
ssize
,
name
));
jfs_info
(
"jfs_symlink: fast symlink added ssize:%d name:%s "
,
ssize
,
name
);
}
/*
* write source path name in a single extent
*/
else
{
j
FYI
(
1
,
(
"jfs_symlink: allocate extent ip:0x%p
\n
"
,
ip
)
);
j
fs_info
(
"jfs_symlink: allocate extent ip:0x%p"
,
ip
);
ip
->
i_op
=
&
page_symlink_inode_operations
;
ip
->
i_mapping
->
a_ops
=
&
jfs_aops
;
...
...
@@ -1033,7 +1031,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
#endif
out1:
j
FYI
(
1
,
(
"jfs_symlink: rc:%d
\n
"
,
-
rc
)
);
j
fs_info
(
"jfs_symlink: rc:%d"
,
-
rc
);
return
-
rc
;
}
...
...
@@ -1064,9 +1062,8 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
int
commit_flag
;
jFYI
(
1
,
(
"jfs_rename: %s %s
\n
"
,
old_dentry
->
d_name
.
name
,
new_dentry
->
d_name
.
name
));
jfs_info
(
"jfs_rename: %s %s"
,
old_dentry
->
d_name
.
name
,
new_dentry
->
d_name
.
name
);
old_ip
=
old_dentry
->
d_inode
;
new_ip
=
new_dentry
->
d_inode
;
...
...
@@ -1168,18 +1165,16 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
rc
=
dtSearch
(
new_dir
,
&
new_dname
,
&
ino
,
&
btstack
,
JFS_CREATE
);
if
(
rc
)
{
jERROR
(
1
,
(
"jfs_rename didn't expect dtSearch to fail w/rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_rename didn't expect dtSearch to fail "
"w/rc = %d"
,
rc
);
goto
out4
;
}
ino
=
old_ip
->
i_ino
;
rc
=
dtInsert
(
tid
,
new_dir
,
&
new_dname
,
&
ino
,
&
btstack
);
if
(
rc
)
{
jERROR
(
1
,
(
"jfs_rename: dtInsert failed w/rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_rename: dtInsert failed w/rc = %d"
,
rc
);
goto
out4
;
}
if
(
S_ISDIR
(
old_ip
->
i_mode
))
...
...
@@ -1192,9 +1187,8 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
ino
=
old_ip
->
i_ino
;
rc
=
dtDelete
(
tid
,
old_dir
,
&
old_dname
,
&
ino
,
JFS_REMOVE
);
if
(
rc
)
{
jERROR
(
1
,
(
"jfs_rename did not expect dtDelete to return rc = %d
\n
"
,
rc
));
jfs_err
(
"jfs_rename did not expect dtDelete to return rc = %d"
,
rc
);
txAbort
(
tid
,
1
);
/* Marks Filesystem dirty */
goto
out4
;
}
...
...
@@ -1297,7 +1291,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
clear_cflag
(
COMMIT_Stale
,
old_dir
);
}
j
FYI
(
1
,
(
"jfs_rename: returning %d
\n
"
,
rc
)
);
j
fs_info
(
"jfs_rename: returning %d"
,
rc
);
return
-
rc
;
}
...
...
@@ -1318,7 +1312,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
tid_t
tid
;
struct
tblock
*
tblk
;
j
FYI
(
1
,
(
"jfs_mknod: %s
\n
"
,
dentry
->
d_name
.
name
)
);
j
fs_info
(
"jfs_mknod: %s"
,
dentry
->
d_name
.
name
);
if
((
rc
=
get_UCSname
(
&
dname
,
dentry
,
JFS_SBI
(
dir
->
i_sb
)
->
nls_tab
)))
goto
out
;
...
...
@@ -1378,7 +1372,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
#endif
out:
j
FYI
(
1
,
(
"jfs_mknod: returning %d
\n
"
,
rc
)
);
j
fs_info
(
"jfs_mknod: returning %d"
,
rc
);
return
-
rc
;
}
...
...
@@ -1392,7 +1386,7 @@ static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry)
int
len
=
dentry
->
d_name
.
len
;
int
rc
;
j
FYI
(
1
,
(
"jfs_lookup: name = %s
\n
"
,
name
)
);
j
fs_info
(
"jfs_lookup: name = %s"
,
name
);
if
((
name
[
0
]
==
'.'
)
&&
(
len
==
1
))
...
...
@@ -1409,17 +1403,14 @@ static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry)
d_add
(
dentry
,
NULL
);
return
ERR_PTR
(
0
);
}
else
if
(
rc
)
{
jERROR
(
1
,
(
"jfs_lookup: dtSearch returned %d
\n
"
,
rc
));
jfs_err
(
"jfs_lookup: dtSearch returned %d"
,
rc
);
return
ERR_PTR
(
-
rc
);
}
}
ip
=
jfs_iget
(
dip
->
i_sb
,
inum
);
if
(
ip
==
NULL
)
{
jERROR
(
1
,
(
"jfs_lookup: iget failed on inum %d
\n
"
,
(
uint
)
inum
));
jfs_err
(
"jfs_lookup: iget failed on inum %d"
,
(
uint
)
inum
);
return
ERR_PTR
(
-
EACCES
);
}
...
...
fs/jfs/super.c
View file @
6e5f0131
...
...
@@ -50,7 +50,7 @@ static pid_t jfsSyncThread;
DECLARE_COMPLETION
(
jfsIOwait
);
#ifdef CONFIG_JFS_DEBUG
int
jfsloglevel
=
1
;
int
jfsloglevel
=
JFS_LOGLEVEL_WARN
;
MODULE_PARM
(
jfsloglevel
,
"i"
);
MODULE_PARM_DESC
(
jfsloglevel
,
"Specify JFS loglevel (0, 1 or 2)"
);
#endif
...
...
@@ -120,7 +120,7 @@ static int jfs_statfs(struct super_block *sb, struct statfs *buf)
s64
maxinodes
;
struct
inomap
*
imap
=
JFS_IP
(
sbi
->
ipimap
)
->
i_imap
;
j
FYI
(
1
,
(
"In jfs_statfs
\n
"
)
);
j
fs_info
(
"In jfs_statfs"
);
buf
->
f_type
=
JFS_SUPER_MAGIC
;
buf
->
f_bsize
=
sbi
->
bsize
;
buf
->
f_blocks
=
sbi
->
bmap
->
db_mapsize
;
...
...
@@ -151,11 +151,10 @@ static void jfs_put_super(struct super_block *sb)
struct
jfs_sb_info
*
sbi
=
JFS_SBI
(
sb
);
int
rc
;
j
FYI
(
1
,
(
"In jfs_put_super
\n
"
)
);
j
fs_info
(
"In jfs_put_super"
);
rc
=
jfs_umount
(
sb
);
if
(
rc
)
{
jERROR
(
1
,
(
"jfs_umount failed with return code %d
\n
"
,
rc
));
}
if
(
rc
)
jfs_err
(
"jfs_umount failed with return code %d"
,
rc
);
unload_nls
(
sbi
->
nls_tab
);
sbi
->
nls_tab
=
NULL
;
...
...
@@ -259,7 +258,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
int
rc
;
s64
newLVSize
=
0
;
j
FYI
(
1
,
(
"In jfs_read_super: s_flags=0x%lx
\n
"
,
sb
->
s_flags
)
);
j
fs_info
(
"In jfs_read_super: s_flags=0x%lx"
,
sb
->
s_flags
);
sbi
=
kmalloc
(
sizeof
(
struct
jfs_sb_info
),
GFP_KERNEL
);
if
(
!
sbi
)
...
...
@@ -291,8 +290,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
rc
=
jfs_mount
(
sb
);
if
(
rc
)
{
if
(
!
silent
)
{
jERROR
(
1
,
(
"jfs_mount failed w/return code = %d
\n
"
,
rc
));
jfs_err
(
"jfs_mount failed w/return code = %d"
,
rc
);
}
goto
out_kfree
;
}
...
...
@@ -302,9 +300,8 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
rc
=
jfs_mount_rw
(
sb
,
0
);
if
(
rc
)
{
if
(
!
silent
)
{
jERROR
(
1
,
(
"jfs_mount_rw failed w/return code = %d
\n
"
,
rc
));
jfs_err
(
"jfs_mount_rw failed, return code = %d"
,
rc
);
}
goto
out_no_rw
;
}
...
...
@@ -335,14 +332,14 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
return
0
;
out_no_root:
j
EVENT
(
1
,
(
"jfs_read_super: get root inode failed
\n
"
)
);
j
fs_err
(
"jfs_read_super: get root inode failed"
);
if
(
inode
)
iput
(
inode
);
out_no_rw:
rc
=
jfs_umount
(
sb
);
if
(
rc
)
{
j
ERROR
(
1
,
(
"jfs_umount failed with return code %d
\n
"
,
rc
)
);
j
fs_err
(
"jfs_umount failed with return code %d"
,
rc
);
}
out_kfree:
if
(
sbi
->
nls_tab
)
...
...
@@ -370,8 +367,7 @@ static void jfs_unlockfs(struct super_block *sb)
if
(
!
(
sb
->
s_flags
&
MS_RDONLY
))
{
if
((
rc
=
lmLogInit
(
log
)))
jERROR
(
1
,
(
"jfs_unlock failed with return code %d
\n
"
,
rc
));
jfs_err
(
"jfs_unlock failed with return code %d"
,
rc
);
else
txResume
(
sb
);
}
...
...
@@ -458,7 +454,7 @@ static int __init init_jfs_fs(void)
*/
rc
=
metapage_init
();
if
(
rc
)
{
j
ERROR
(
1
,
(
"metapage_init failed w/rc = %d
\n
"
,
rc
)
);
j
fs_err
(
"metapage_init failed w/rc = %d"
,
rc
);
goto
free_slab
;
}
...
...
@@ -467,7 +463,7 @@ static int __init init_jfs_fs(void)
*/
rc
=
txInit
();
if
(
rc
)
{
j
ERROR
(
1
,
(
"txInit failed w/rc = %d
\n
"
,
rc
)
);
j
fs_err
(
"txInit failed w/rc = %d"
,
rc
);
goto
free_metapage
;
}
...
...
@@ -477,8 +473,7 @@ static int __init init_jfs_fs(void)
jfsIOthread
=
kernel_thread
(
jfsIOWait
,
0
,
CLONE_FS
|
CLONE_FILES
|
CLONE_SIGHAND
);
if
(
jfsIOthread
<
0
)
{
jERROR
(
1
,
(
"init_jfs_fs: fork failed w/rc = %d
\n
"
,
jfsIOthread
));
jfs_err
(
"init_jfs_fs: fork failed w/rc = %d"
,
jfsIOthread
);
goto
end_txmngr
;
}
wait_for_completion
(
&
jfsIOwait
);
/* Wait until thread starts */
...
...
@@ -486,9 +481,7 @@ static int __init init_jfs_fs(void)
jfsCommitThread
=
kernel_thread
(
jfs_lazycommit
,
0
,
CLONE_FS
|
CLONE_FILES
|
CLONE_SIGHAND
);
if
(
jfsCommitThread
<
0
)
{
jERROR
(
1
,
(
"init_jfs_fs: fork failed w/rc = %d
\n
"
,
jfsCommitThread
));
jfs_err
(
"init_jfs_fs: fork failed w/rc = %d"
,
jfsCommitThread
);
goto
kill_iotask
;
}
wait_for_completion
(
&
jfsIOwait
);
/* Wait until thread starts */
...
...
@@ -496,8 +489,7 @@ static int __init init_jfs_fs(void)
jfsSyncThread
=
kernel_thread
(
jfs_sync
,
0
,
CLONE_FS
|
CLONE_FILES
|
CLONE_SIGHAND
);
if
(
jfsSyncThread
<
0
)
{
jERROR
(
1
,
(
"init_jfs_fs: fork failed w/rc = %d
\n
"
,
jfsSyncThread
));
jfs_err
(
"init_jfs_fs: fork failed w/rc = %d"
,
jfsSyncThread
);
goto
kill_committask
;
}
wait_for_completion
(
&
jfsIOwait
);
/* Wait until thread starts */
...
...
@@ -527,7 +519,7 @@ static int __init init_jfs_fs(void)
static
void
__exit
exit_jfs_fs
(
void
)
{
j
FYI
(
1
,
(
"exit_jfs_fs called
\n
"
)
);
j
fs_info
(
"exit_jfs_fs called"
);
jfs_stop_threads
=
1
;
txExit
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment