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
nexedi
linux
Commits
f01b6051
Commit
f01b6051
authored
Jul 06, 2003
by
Dave Kleikamp
Browse files
Options
Browse Files
Download
Plain Diff
Merge jfs@jfs.bkbits.net:linux-2.5
into shaggy.austin.ibm.com:/shaggy/bk/jfs-2.5
parents
c7b0b16d
f7ec1497
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
262 additions
and
261 deletions
+262
-261
fs/jfs/inode.c
fs/jfs/inode.c
+1
-1
fs/jfs/jfs_btree.h
fs/jfs/jfs_btree.h
+1
-1
fs/jfs/jfs_dmap.c
fs/jfs/jfs_dmap.c
+74
-74
fs/jfs/jfs_dtree.c
fs/jfs/jfs_dtree.c
+20
-20
fs/jfs/jfs_extent.c
fs/jfs/jfs_extent.c
+16
-16
fs/jfs/jfs_imap.c
fs/jfs/jfs_imap.c
+56
-55
fs/jfs/jfs_logmgr.c
fs/jfs/jfs_logmgr.c
+11
-12
fs/jfs/jfs_mount.c
fs/jfs/jfs_mount.c
+12
-13
fs/jfs/jfs_txnmgr.c
fs/jfs/jfs_txnmgr.c
+3
-5
fs/jfs/jfs_unicode.c
fs/jfs/jfs_unicode.c
+8
-4
fs/jfs/jfs_xtree.c
fs/jfs/jfs_xtree.c
+18
-18
fs/jfs/namei.c
fs/jfs/namei.c
+36
-36
fs/jfs/resize.c
fs/jfs/resize.c
+2
-2
fs/jfs/super.c
fs/jfs/super.c
+1
-1
fs/jfs/xattr.c
fs/jfs/xattr.c
+3
-3
No files found.
fs/jfs/inode.c
View file @
f01b6051
...
@@ -259,7 +259,7 @@ jfs_get_blocks(struct inode *ip, sector_t lblock, unsigned long max_blocks,
...
@@ -259,7 +259,7 @@ jfs_get_blocks(struct inode *ip, sector_t lblock, unsigned long max_blocks,
else
else
IREAD_UNLOCK
(
ip
);
IREAD_UNLOCK
(
ip
);
}
}
return
-
rc
;
return
rc
;
}
}
static
int
jfs_get_block
(
struct
inode
*
ip
,
sector_t
lblock
,
static
int
jfs_get_block
(
struct
inode
*
ip
,
sector_t
lblock
,
...
...
fs/jfs/jfs_btree.h
View file @
f01b6051
...
@@ -81,7 +81,7 @@ struct btpage {
...
@@ -81,7 +81,7 @@ struct btpage {
} else {\
} else {\
P = NULL;\
P = NULL;\
jfs_err("bread failed!");\
jfs_err("bread failed!");\
RC = EIO;\
RC =
-
EIO;\
}\
}\
}\
}\
}
}
...
...
fs/jfs/jfs_dmap.c
View file @
f01b6051
...
@@ -188,8 +188,8 @@ signed char budtab[256] = {
...
@@ -188,8 +188,8 @@ signed char budtab[256] = {
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOMEM - insufficient memory
*
-
ENOMEM - insufficient memory
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbMount
(
struct
inode
*
ipbmap
)
int
dbMount
(
struct
inode
*
ipbmap
)
{
{
...
@@ -204,7 +204,7 @@ int dbMount(struct inode *ipbmap)
...
@@ -204,7 +204,7 @@ int dbMount(struct inode *ipbmap)
/* allocate memory for the in-memory bmap descriptor */
/* allocate memory for the in-memory bmap descriptor */
bmp
=
kmalloc
(
sizeof
(
struct
bmap
),
GFP_KERNEL
);
bmp
=
kmalloc
(
sizeof
(
struct
bmap
),
GFP_KERNEL
);
if
(
bmp
==
NULL
)
if
(
bmp
==
NULL
)
return
(
ENOMEM
)
;
return
-
ENOMEM
;
/* read the on-disk bmap descriptor. */
/* read the on-disk bmap descriptor. */
mp
=
read_metapage
(
ipbmap
,
mp
=
read_metapage
(
ipbmap
,
...
@@ -212,7 +212,7 @@ int dbMount(struct inode *ipbmap)
...
@@ -212,7 +212,7 @@ int dbMount(struct inode *ipbmap)
PSIZE
,
0
);
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
kfree
(
bmp
);
kfree
(
bmp
);
return
(
EIO
)
;
return
-
EIO
;
}
}
/* copy the on-disk bmap descriptor to its in-memory version. */
/* copy the on-disk bmap descriptor to its in-memory version. */
...
@@ -267,7 +267,7 @@ int dbMount(struct inode *ipbmap)
...
@@ -267,7 +267,7 @@ int dbMount(struct inode *ipbmap)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbUnmount
(
struct
inode
*
ipbmap
,
int
mounterror
)
int
dbUnmount
(
struct
inode
*
ipbmap
,
int
mounterror
)
{
{
...
@@ -315,7 +315,7 @@ int dbSync(struct inode *ipbmap)
...
@@ -315,7 +315,7 @@ int dbSync(struct inode *ipbmap)
PSIZE
,
0
);
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
jfs_err
(
"dbSync: read_metapage failed!"
);
jfs_err
(
"dbSync: read_metapage failed!"
);
return
(
EIO
)
;
return
-
EIO
;
}
}
/* copy the in-memory version of the bmap to the on-disk version */
/* copy the in-memory version of the bmap to the on-disk version */
dbmp_le
=
(
struct
dbmap
*
)
mp
->
data
;
dbmp_le
=
(
struct
dbmap
*
)
mp
->
data
;
...
@@ -368,7 +368,7 @@ int dbSync(struct inode *ipbmap)
...
@@ -368,7 +368,7 @@ int dbSync(struct inode *ipbmap)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbFree
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
)
int
dbFree
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
)
{
{
...
@@ -399,7 +399,7 @@ int dbFree(struct inode *ip, s64 blkno, s64 nblocks)
...
@@ -399,7 +399,7 @@ int dbFree(struct inode *ip, s64 blkno, s64 nblocks)
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
(
EIO
)
;
return
-
EIO
;
}
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
@@ -448,7 +448,7 @@ int dbFree(struct inode *ip, s64 blkno, s64 nblocks)
...
@@ -448,7 +448,7 @@ int dbFree(struct inode *ip, s64 blkno, s64 nblocks)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
int
dbUpdatePMap
(
struct
inode
*
ipbmap
,
dbUpdatePMap
(
struct
inode
*
ipbmap
,
...
@@ -488,7 +488,7 @@ dbUpdatePMap(struct inode *ipbmap,
...
@@ -488,7 +488,7 @@ dbUpdatePMap(struct inode *ipbmap,
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
return
(
EIO
)
;
return
-
EIO
;
}
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
@@ -721,8 +721,8 @@ int dbNextAG(struct inode *ipbmap)
...
@@ -721,8 +721,8 @@ int dbNextAG(struct inode *ipbmap)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbAlloc
(
struct
inode
*
ip
,
s64
hint
,
s64
nblocks
,
s64
*
results
)
int
dbAlloc
(
struct
inode
*
ip
,
s64
hint
,
s64
nblocks
,
s64
*
results
)
{
{
...
@@ -742,7 +742,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -742,7 +742,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
#ifdef _STILL_TO_PORT
#ifdef _STILL_TO_PORT
/* DASD limit check F226941 */
/* DASD limit check F226941 */
if
(
OVER_LIMIT
(
ip
,
nblocks
))
if
(
OVER_LIMIT
(
ip
,
nblocks
))
return
ENOSPC
;
return
-
ENOSPC
;
#endif
/* _STILL_TO_PORT */
#endif
/* _STILL_TO_PORT */
/* get the log2 number of blocks to be allocated.
/* get the log2 number of blocks to be allocated.
...
@@ -812,7 +812,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -812,7 +812,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
/* get the buffer for the dmap containing the hint.
/* get the buffer for the dmap containing the hint.
*/
*/
rc
=
EIO
;
rc
=
-
EIO
;
lblkno
=
BLKTODMAP
(
blkno
,
bmp
->
db_l2nbperpage
);
lblkno
=
BLKTODMAP
(
blkno
,
bmp
->
db_l2nbperpage
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
...
@@ -824,7 +824,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -824,7 +824,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
* blocks beginning at the hint.
* blocks beginning at the hint.
*/
*/
if
((
rc
=
dbAllocNext
(
bmp
,
dp
,
blkno
,
(
int
)
nblocks
))
if
((
rc
=
dbAllocNext
(
bmp
,
dp
,
blkno
,
(
int
)
nblocks
))
!=
ENOSPC
)
{
!=
-
ENOSPC
)
{
if
(
rc
==
0
)
{
if
(
rc
==
0
)
{
*
results
=
blkno
;
*
results
=
blkno
;
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
...
@@ -853,7 +853,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -853,7 +853,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
*/
*/
if
((
rc
=
if
((
rc
=
dbAllocNear
(
bmp
,
dp
,
blkno
,
(
int
)
nblocks
,
l2nb
,
results
))
dbAllocNear
(
bmp
,
dp
,
blkno
,
(
int
)
nblocks
,
l2nb
,
results
))
!=
ENOSPC
)
{
!=
-
ENOSPC
)
{
if
(
rc
==
0
)
{
if
(
rc
==
0
)
{
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
*
results
,
nblocks
);
*
results
,
nblocks
);
...
@@ -868,7 +868,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -868,7 +868,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
* the same dmap as the hint.
* the same dmap as the hint.
*/
*/
if
((
rc
=
dbAllocDmapLev
(
bmp
,
dp
,
(
int
)
nblocks
,
l2nb
,
results
))
if
((
rc
=
dbAllocDmapLev
(
bmp
,
dp
,
(
int
)
nblocks
,
l2nb
,
results
))
!=
ENOSPC
)
{
!=
-
ENOSPC
)
{
if
(
rc
==
0
)
{
if
(
rc
==
0
)
{
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
*
results
,
nblocks
);
*
results
,
nblocks
);
...
@@ -888,7 +888,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -888,7 +888,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
*/
*/
IWRITE_LOCK
(
ipbmap
);
IWRITE_LOCK
(
ipbmap
);
if
((
rc
=
dbAllocAG
(
bmp
,
agno
,
nblocks
,
l2nb
,
results
))
if
((
rc
=
dbAllocAG
(
bmp
,
agno
,
nblocks
,
l2nb
,
results
))
!=
ENOSPC
)
{
!=
-
ENOSPC
)
{
if
(
rc
==
0
)
if
(
rc
==
0
)
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
*
results
,
nblocks
);
*
results
,
nblocks
);
...
@@ -907,7 +907,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -907,7 +907,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
/* Try to allocate within this allocation group. if that fails, try to
/* Try to allocate within this allocation group. if that fails, try to
* allocate anywhere in the map.
* allocate anywhere in the map.
*/
*/
if
((
rc
=
dbAllocAG
(
bmp
,
agno
,
nblocks
,
l2nb
,
results
))
==
ENOSPC
)
if
((
rc
=
dbAllocAG
(
bmp
,
agno
,
nblocks
,
l2nb
,
results
))
==
-
ENOSPC
)
rc
=
dbAllocAny
(
bmp
,
nblocks
,
l2nb
,
results
);
rc
=
dbAllocAny
(
bmp
,
nblocks
,
l2nb
,
results
);
if
(
rc
==
0
)
{
if
(
rc
==
0
)
{
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
*
results
,
nblocks
);
DBALLOC
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
*
results
,
nblocks
);
...
@@ -937,8 +937,8 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
...
@@ -937,8 +937,8 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbAllocExact
(
struct
inode
*
ip
,
s64
blkno
,
int
nblocks
)
int
dbAllocExact
(
struct
inode
*
ip
,
s64
blkno
,
int
nblocks
)
{
{
...
@@ -960,13 +960,13 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
...
@@ -960,13 +960,13 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
*/
*/
if
(
nblocks
<=
0
||
nblocks
>
BPERDMAP
||
blkno
>=
bmp
->
db_mapsize
)
{
if
(
nblocks
<=
0
||
nblocks
>
BPERDMAP
||
blkno
>=
bmp
->
db_mapsize
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
EINVAL
;
return
-
EINVAL
;
}
}
if
(
nblocks
>
((
s64
)
1
<<
bmp
->
db_maxfreebud
))
{
if
(
nblocks
>
((
s64
)
1
<<
bmp
->
db_maxfreebud
))
{
/* the free space is no longer available */
/* the free space is no longer available */
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
ENOSPC
;
return
-
ENOSPC
;
}
}
/* read in the dmap covering the extent */
/* read in the dmap covering the extent */
...
@@ -974,7 +974,7 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
...
@@ -974,7 +974,7 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
(
EIO
)
;
return
-
EIO
;
}
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
@@ -1022,8 +1022,8 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
...
@@ -1022,8 +1022,8 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
int
dbReAlloc
(
struct
inode
*
ip
,
dbReAlloc
(
struct
inode
*
ip
,
...
@@ -1037,7 +1037,7 @@ dbReAlloc(struct inode *ip,
...
@@ -1037,7 +1037,7 @@ dbReAlloc(struct inode *ip,
*
results
=
blkno
;
*
results
=
blkno
;
return
(
0
);
return
(
0
);
}
else
{
}
else
{
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
}
}
...
@@ -1071,8 +1071,8 @@ dbReAlloc(struct inode *ip,
...
@@ -1071,8 +1071,8 @@ dbReAlloc(struct inode *ip,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbExtend
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
,
s64
addnblocks
)
int
dbExtend
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
,
s64
addnblocks
)
{
{
...
@@ -1090,7 +1090,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
...
@@ -1090,7 +1090,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
*/
*/
if
(((
rel_block
=
blkno
&
(
sbi
->
nbperpage
-
1
)))
&&
if
(((
rel_block
=
blkno
&
(
sbi
->
nbperpage
-
1
)))
&&
(
rel_block
+
nblocks
+
addnblocks
>
sbi
->
nbperpage
))
(
rel_block
+
nblocks
+
addnblocks
>
sbi
->
nbperpage
))
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* get the last block of the current allocation */
/* get the last block of the current allocation */
lastblkno
=
blkno
+
nblocks
-
1
;
lastblkno
=
blkno
+
nblocks
-
1
;
...
@@ -1117,7 +1117,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
...
@@ -1117,7 +1117,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
if
(
addnblocks
>
BPERDMAP
||
extblkno
>=
bmp
->
db_mapsize
||
if
(
addnblocks
>
BPERDMAP
||
extblkno
>=
bmp
->
db_mapsize
||
(
extblkno
&
(
bmp
->
db_agsize
-
1
))
==
0
)
{
(
extblkno
&
(
bmp
->
db_agsize
-
1
))
==
0
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
(
ENOSPC
)
;
return
-
ENOSPC
;
}
}
/* get the buffer for the dmap containing the first block
/* get the buffer for the dmap containing the first block
...
@@ -1127,7 +1127,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
...
@@ -1127,7 +1127,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
(
EIO
)
;
return
-
EIO
;
}
}
DBALLOCCK
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
blkno
,
nblocks
);
DBALLOCCK
(
bmp
->
db_DBmap
,
bmp
->
db_mapsize
,
blkno
,
nblocks
);
...
@@ -1148,7 +1148,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
...
@@ -1148,7 +1148,7 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
}
else
{
}
else
{
/* we were not successful */
/* we were not successful */
release_metapage
(
mp
);
release_metapage
(
mp
);
assert
(
rc
==
ENOSPC
||
rc
==
EIO
);
assert
(
rc
==
-
ENOSPC
||
rc
==
-
EIO
);
}
}
return
(
rc
);
return
(
rc
);
...
@@ -1169,8 +1169,8 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
...
@@ -1169,8 +1169,8 @@ int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1196,13 +1196,13 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -1196,13 +1196,13 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
* this dmap.
* this dmap.
*/
*/
if
(
dbitno
+
nblocks
>
BPERDMAP
)
if
(
dbitno
+
nblocks
>
BPERDMAP
)
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* check if the starting leaf indicates that anything
/* check if the starting leaf indicates that anything
* is free.
* is free.
*/
*/
if
(
leaf
[
word
]
==
NOFREE
)
if
(
leaf
[
word
]
==
NOFREE
)
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* check the dmaps words corresponding to block range to see
/* check the dmaps words corresponding to block range to see
* if the block range is free. not all bits of the first and
* if the block range is free. not all bits of the first and
...
@@ -1231,7 +1231,7 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -1231,7 +1231,7 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
*/
*/
mask
=
(
ONES
<<
(
DBWORD
-
nb
)
>>
wbitno
);
mask
=
(
ONES
<<
(
DBWORD
-
nb
)
>>
wbitno
);
if
((
mask
&
~
le32_to_cpu
(
dp
->
wmap
[
word
]))
!=
mask
)
if
((
mask
&
~
le32_to_cpu
(
dp
->
wmap
[
word
]))
!=
mask
)
return
(
ENOSPC
)
;
return
-
ENOSPC
;
word
+=
1
;
word
+=
1
;
}
else
{
}
else
{
...
@@ -1249,7 +1249,7 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -1249,7 +1249,7 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
/* does the leaf describe any free space ?
/* does the leaf describe any free space ?
*/
*/
if
(
leaf
[
word
]
<
BUDMIN
)
if
(
leaf
[
word
]
<
BUDMIN
)
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* determine the l2 number of bits provided
/* determine the l2 number of bits provided
* by this leaf.
* by this leaf.
...
@@ -1295,8 +1295,8 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -1295,8 +1295,8 @@ static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1344,7 +1344,7 @@ dbAllocNear(struct bmap * bmp,
...
@@ -1344,7 +1344,7 @@ dbAllocNear(struct bmap * bmp,
return
(
rc
);
return
(
rc
);
}
}
return
(
ENOSPC
)
;
return
-
ENOSPC
;
}
}
...
@@ -1397,8 +1397,8 @@ dbAllocNear(struct bmap * bmp,
...
@@ -1397,8 +1397,8 @@ dbAllocNear(struct bmap * bmp,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* note: IWRITE_LOCK(ipmap) held on entry/exit;
* note: IWRITE_LOCK(ipmap) held on entry/exit;
*/
*/
...
@@ -1441,8 +1441,8 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
...
@@ -1441,8 +1441,8 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
if
(
bmp
->
db_agsize
==
BPERDMAP
if
(
bmp
->
db_agsize
==
BPERDMAP
||
bmp
->
db_agfree
[
agno
]
==
bmp
->
db_agsize
)
{
||
bmp
->
db_agfree
[
agno
]
==
bmp
->
db_agsize
)
{
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
/* assert(!(rc == ENOSPC && bmp->db_agfree[agno] == bmp->db_agsize)); */
/* assert(!(rc ==
-
ENOSPC && bmp->db_agfree[agno] == bmp->db_agsize)); */
if
((
rc
==
ENOSPC
)
&&
if
((
rc
==
-
ENOSPC
)
&&
(
bmp
->
db_agfree
[
agno
]
==
bmp
->
db_agsize
))
{
(
bmp
->
db_agfree
[
agno
]
==
bmp
->
db_agsize
))
{
jfs_err
(
"dbAllocAG: removed assert, but still need to "
jfs_err
(
"dbAllocAG: removed assert, but still need to "
"debug here
\n
blkno = 0x%Lx, nblocks = 0x%Lx"
,
"debug here
\n
blkno = 0x%Lx, nblocks = 0x%Lx"
,
...
@@ -1458,7 +1458,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
...
@@ -1458,7 +1458,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
lblkno
=
BLKTOCTL
(
blkno
,
bmp
->
db_l2nbperpage
,
bmp
->
db_aglevel
);
lblkno
=
BLKTOCTL
(
blkno
,
bmp
->
db_l2nbperpage
,
bmp
->
db_aglevel
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
return
(
EIO
)
;
return
-
EIO
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
budmin
=
dcp
->
budmin
;
budmin
=
dcp
->
budmin
;
...
@@ -1531,7 +1531,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
...
@@ -1531,7 +1531,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
if
((
rc
=
if
((
rc
=
dbFindCtl
(
bmp
,
l2nb
,
bmp
->
db_aglevel
-
1
,
dbFindCtl
(
bmp
,
l2nb
,
bmp
->
db_aglevel
-
1
,
&
blkno
)))
{
&
blkno
)))
{
assert
(
rc
!=
ENOSPC
);
assert
(
rc
!=
-
ENOSPC
);
return
(
rc
);
return
(
rc
);
}
}
}
}
...
@@ -1539,16 +1539,16 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
...
@@ -1539,16 +1539,16 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
/* allocate the blocks.
/* allocate the blocks.
*/
*/
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
assert
(
rc
!=
ENOSPC
);
assert
(
rc
!=
-
ENOSPC
);
return
(
rc
);
return
(
rc
);
}
}
/* no space in the allocation group. release the buffer and
/* no space in the allocation group. release the buffer and
* return ENOSPC.
* return
-
ENOSPC.
*/
*/
release_metapage
(
mp
);
release_metapage
(
mp
);
return
(
ENOSPC
)
;
return
-
ENOSPC
;
}
}
...
@@ -1573,8 +1573,8 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
...
@@ -1573,8 +1573,8 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1595,7 +1595,7 @@ static int dbAllocAny(struct bmap * bmp, s64 nblocks, int l2nb, s64 * results)
...
@@ -1595,7 +1595,7 @@ static int dbAllocAny(struct bmap * bmp, s64 nblocks, int l2nb, s64 * results)
/* allocate the blocks.
/* allocate the blocks.
*/
*/
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
rc
=
dbAllocCtl
(
bmp
,
nblocks
,
l2nb
,
blkno
,
results
);
assert
(
rc
!=
ENOSPC
);
assert
(
rc
!=
-
ENOSPC
);
return
(
rc
);
return
(
rc
);
}
}
...
@@ -1623,8 +1623,8 @@ static int dbAllocAny(struct bmap * bmp, s64 nblocks, int l2nb, s64 * results)
...
@@ -1623,8 +1623,8 @@ static int dbAllocAny(struct bmap * bmp, s64 nblocks, int l2nb, s64 * results)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1648,7 +1648,7 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
...
@@ -1648,7 +1648,7 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
lblkno
=
BLKTOCTL
(
b
,
bmp
->
db_l2nbperpage
,
lev
);
lblkno
=
BLKTOCTL
(
b
,
bmp
->
db_l2nbperpage
,
lev
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
return
(
EIO
)
;
return
-
EIO
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
budmin
=
dcp
->
budmin
;
budmin
=
dcp
->
budmin
;
...
@@ -1667,7 +1667,7 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
...
@@ -1667,7 +1667,7 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
*/
*/
if
(
rc
)
{
if
(
rc
)
{
assert
(
lev
==
level
);
assert
(
lev
==
level
);
return
(
ENOSPC
)
;
return
-
ENOSPC
;
}
}
/* adjust the block number to reflect the location within
/* adjust the block number to reflect the location within
...
@@ -1730,8 +1730,8 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
...
@@ -1730,8 +1730,8 @@ static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1751,7 +1751,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
...
@@ -1751,7 +1751,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
lblkno
=
BLKTODMAP
(
blkno
,
bmp
->
db_l2nbperpage
);
lblkno
=
BLKTODMAP
(
blkno
,
bmp
->
db_l2nbperpage
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
return
(
EIO
)
;
return
-
EIO
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
/* try to allocate the blocks.
/* try to allocate the blocks.
...
@@ -1778,7 +1778,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
...
@@ -1778,7 +1778,7 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
lblkno
=
BLKTODMAP
(
b
,
bmp
->
db_l2nbperpage
);
lblkno
=
BLKTODMAP
(
b
,
bmp
->
db_l2nbperpage
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
rc
=
EIO
;
rc
=
-
EIO
;
goto
backout
;
goto
backout
;
}
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
@@ -1875,8 +1875,8 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
...
@@ -1875,8 +1875,8 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient disk resources
*
-
ENOSPC - insufficient disk resources
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap), e.g., from dbAlloc(), or
* serialization: IREAD_LOCK(ipbmap), e.g., from dbAlloc(), or
* IWRITE_LOCK(ipbmap), e.g., dbAllocCtl(), held on entry/exit;
* IWRITE_LOCK(ipbmap), e.g., dbAllocCtl(), held on entry/exit;
...
@@ -1896,7 +1896,7 @@ dbAllocDmapLev(struct bmap * bmp,
...
@@ -1896,7 +1896,7 @@ dbAllocDmapLev(struct bmap * bmp,
* returns the index of the leaf at which free space was found.
* returns the index of the leaf at which free space was found.
*/
*/
if
(
dbFindLeaf
((
dmtree_t
*
)
&
dp
->
tree
,
l2nb
,
&
leafidx
))
if
(
dbFindLeaf
((
dmtree_t
*
)
&
dp
->
tree
,
l2nb
,
&
leafidx
))
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* determine the block number within the file system corresponding
/* determine the block number within the file system corresponding
* to the leaf at which free space was found.
* to the leaf at which free space was found.
...
@@ -1941,7 +1941,7 @@ dbAllocDmapLev(struct bmap * bmp,
...
@@ -1941,7 +1941,7 @@ dbAllocDmapLev(struct bmap * bmp,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -1996,7 +1996,7 @@ static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -1996,7 +1996,7 @@ static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -2376,7 +2376,7 @@ static void dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
...
@@ -2376,7 +2376,7 @@ static void dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*
*
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
...
@@ -2396,7 +2396,7 @@ dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level)
...
@@ -2396,7 +2396,7 @@ dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level)
lblkno
=
BLKTOCTL
(
blkno
,
bmp
->
db_l2nbperpage
,
level
);
lblkno
=
BLKTOCTL
(
blkno
,
bmp
->
db_l2nbperpage
,
level
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
bmp
->
db_ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
if
(
mp
==
NULL
)
return
(
EIO
)
;
return
-
EIO
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
dcp
=
(
struct
dmapctl
*
)
mp
->
data
;
/* determine the leaf number corresponding to the block and
/* determine the leaf number corresponding to the block and
...
@@ -2819,7 +2819,7 @@ static void dbAdjTree(dmtree_t * tp, int leafno, int newval)
...
@@ -2819,7 +2819,7 @@ static void dbAdjTree(dmtree_t * tp, int leafno, int newval)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOSPC - insufficient free blocks.
*
-
ENOSPC - insufficient free blocks.
*/
*/
static
int
dbFindLeaf
(
dmtree_t
*
tp
,
int
l2nb
,
int
*
leafidx
)
static
int
dbFindLeaf
(
dmtree_t
*
tp
,
int
l2nb
,
int
*
leafidx
)
{
{
...
@@ -2829,7 +2829,7 @@ static int dbFindLeaf(dmtree_t * tp, int l2nb, int *leafidx)
...
@@ -2829,7 +2829,7 @@ static int dbFindLeaf(dmtree_t * tp, int l2nb, int *leafidx)
* sufficient free space.
* sufficient free space.
*/
*/
if
(
l2nb
>
tp
->
dmt_stree
[
ROOT
])
if
(
l2nb
>
tp
->
dmt_stree
[
ROOT
])
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* sufficient free space available. now search down the tree
/* sufficient free space available. now search down the tree
* starting at the next level for the leftmost leaf that
* starting at the next level for the leftmost leaf that
...
@@ -3073,7 +3073,7 @@ void fsDirty(void)
...
@@ -3073,7 +3073,7 @@ void fsDirty(void)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error
*
-
EIO - i/o error
*/
*/
int
dbAllocBottomUp
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
)
int
dbAllocBottomUp
(
struct
inode
*
ip
,
s64
blkno
,
s64
nblocks
)
{
{
...
@@ -3104,7 +3104,7 @@ int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks)
...
@@ -3104,7 +3104,7 @@ int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks)
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
mp
=
read_metapage
(
ipbmap
,
lblkno
,
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
IREAD_UNLOCK
(
ipbmap
);
IREAD_UNLOCK
(
ipbmap
);
return
(
EIO
)
;
return
-
EIO
;
}
}
dp
=
(
struct
dmap
*
)
mp
->
data
;
dp
=
(
struct
dmap
*
)
mp
->
data
;
...
@@ -3514,7 +3514,7 @@ int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks)
...
@@ -3514,7 +3514,7 @@ int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks)
return
0
;
return
0
;
errout:
errout:
return
EIO
;
return
-
EIO
;
}
}
...
...
fs/jfs/jfs_dtree.c
View file @
f01b6051
...
@@ -134,7 +134,7 @@ struct dtsplit {
...
@@ -134,7 +134,7 @@ struct dtsplit {
BT_PUTPAGE(MP);\
BT_PUTPAGE(MP);\
updateSuper((IP)->i_sb, FM_DIRTY);\
updateSuper((IP)->i_sb, FM_DIRTY);\
MP = NULL;\
MP = NULL;\
RC = EIO;\
RC =
-
EIO;\
}\
}\
}\
}\
}
}
...
@@ -404,7 +404,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
...
@@ -404,7 +404,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
xtInsert
(
tid
,
ip
,
0
,
0
,
sbi
->
nbperpage
,
xtInsert
(
tid
,
ip
,
0
,
0
,
sbi
->
nbperpage
,
&
xaddr
,
0
)))
{
&
xaddr
,
0
)))
{
jfs_warn
(
"add_index: xtInsert failed!"
);
jfs_warn
(
"add_index: xtInsert failed!"
);
return
-
1
;
return
-
EPERM
;
}
}
ip
->
i_size
=
PSIZE
;
ip
->
i_size
=
PSIZE
;
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
sbi
->
nbperpage
);
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
sbi
->
nbperpage
);
...
@@ -412,7 +412,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
...
@@ -412,7 +412,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
if
((
mp
=
get_index_page
(
ip
,
0
))
==
0
)
{
if
((
mp
=
get_index_page
(
ip
,
0
))
==
0
)
{
jfs_err
(
"add_index: get_metapage failed!"
);
jfs_err
(
"add_index: get_metapage failed!"
);
xtTruncate
(
tid
,
ip
,
0
,
COMMIT_PWMAP
);
xtTruncate
(
tid
,
ip
,
0
,
COMMIT_PWMAP
);
return
-
1
;
return
-
EPERM
;
}
}
tlck
=
txLock
(
tid
,
ip
,
mp
,
tlckDATA
);
tlck
=
txLock
(
tid
,
ip
,
mp
,
tlckDATA
);
llck
=
(
struct
linelock
*
)
&
tlck
->
lock
;
llck
=
(
struct
linelock
*
)
&
tlck
->
lock
;
...
@@ -447,7 +447,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
...
@@ -447,7 +447,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
&
xaddr
,
0
)))
{
&
xaddr
,
0
)))
{
jfs_warn
(
"add_index: xtInsert failed!"
);
jfs_warn
(
"add_index: xtInsert failed!"
);
jfs_ip
->
next_index
--
;
jfs_ip
->
next_index
--
;
return
-
1
;
return
-
EPERM
;
}
}
ip
->
i_size
+=
PSIZE
;
ip
->
i_size
+=
PSIZE
;
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
sbi
->
nbperpage
);
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
sbi
->
nbperpage
);
...
@@ -461,7 +461,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
...
@@ -461,7 +461,7 @@ static u32 add_index(tid_t tid, struct inode *ip, s64 bn, int slot)
if
(
mp
==
0
)
{
if
(
mp
==
0
)
{
jfs_err
(
"add_index: get/read_metapage failed!"
);
jfs_err
(
"add_index: get/read_metapage failed!"
);
return
-
1
;
return
-
EPERM
;
}
}
lock_index
(
tid
,
ip
,
mp
,
index
);
lock_index
(
tid
,
ip
,
mp
,
index
);
...
@@ -588,7 +588,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
...
@@ -588,7 +588,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
(
wchar_t
*
)
kmalloc
((
JFS_NAME_MAX
+
1
)
*
sizeof
(
wchar_t
),
(
wchar_t
*
)
kmalloc
((
JFS_NAME_MAX
+
1
)
*
sizeof
(
wchar_t
),
GFP_NOFS
);
GFP_NOFS
);
if
(
ciKey
.
name
==
0
)
{
if
(
ciKey
.
name
==
0
)
{
rc
=
ENOMEM
;
rc
=
-
ENOMEM
;
goto
dtSearch_Exit2
;
goto
dtSearch_Exit2
;
}
}
...
@@ -674,7 +674,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
...
@@ -674,7 +674,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
*/
*/
if
(
flag
==
JFS_CREATE
)
{
if
(
flag
==
JFS_CREATE
)
{
*
data
=
inumber
;
*
data
=
inumber
;
rc
=
EEXIST
;
rc
=
-
EEXIST
;
goto
out
;
goto
out
;
}
}
...
@@ -684,7 +684,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
...
@@ -684,7 +684,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
if
((
flag
==
JFS_REMOVE
||
if
((
flag
==
JFS_REMOVE
||
flag
==
JFS_RENAME
)
&&
flag
==
JFS_RENAME
)
&&
*
data
!=
inumber
)
{
*
data
!=
inumber
)
{
rc
=
ESTALE
;
rc
=
-
ESTALE
;
goto
out
;
goto
out
;
}
}
...
@@ -732,7 +732,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
...
@@ -732,7 +732,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
*/
*/
if
(
flag
==
JFS_LOOKUP
||
flag
==
JFS_REMOVE
||
if
(
flag
==
JFS_LOOKUP
||
flag
==
JFS_REMOVE
||
flag
==
JFS_RENAME
)
{
flag
==
JFS_RENAME
)
{
rc
=
ENOENT
;
rc
=
-
ENOENT
;
goto
out
;
goto
out
;
}
}
...
@@ -770,7 +770,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
...
@@ -770,7 +770,7 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
*/
*/
jfs_err
(
"stack overrun in dtSearch!"
);
jfs_err
(
"stack overrun in dtSearch!"
);
updateSuper
(
sb
,
FM_DIRTY
);
updateSuper
(
sb
,
FM_DIRTY
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
out
;
goto
out
;
}
}
btstack
->
nsplit
++
;
btstack
->
nsplit
++
;
...
@@ -840,7 +840,7 @@ int dtInsert(tid_t tid, struct inode *ip,
...
@@ -840,7 +840,7 @@ int dtInsert(tid_t tid, struct inode *ip,
if
(
DO_INDEX
(
ip
))
{
if
(
DO_INDEX
(
ip
))
{
if
(
JFS_IP
(
ip
)
->
next_index
==
DIREND
)
{
if
(
JFS_IP
(
ip
)
->
next_index
==
DIREND
)
{
DT_PUTPAGE
(
mp
);
DT_PUTPAGE
(
mp
);
return
EMLINK
;
return
-
EMLINK
;
}
}
n
=
NDTLEAF
(
name
->
namlen
);
n
=
NDTLEAF
(
name
->
namlen
);
data
.
leaf
.
tid
=
tid
;
data
.
leaf
.
tid
=
tid
;
...
@@ -953,7 +953,7 @@ static int dtSplitUp(tid_t tid,
...
@@ -953,7 +953,7 @@ static int dtSplitUp(tid_t tid,
GFP_NOFS
);
GFP_NOFS
);
if
(
key
.
name
==
0
)
{
if
(
key
.
name
==
0
)
{
DT_PUTPAGE
(
smp
);
DT_PUTPAGE
(
smp
);
rc
=
ENOMEM
;
rc
=
-
ENOMEM
;
goto
dtSplitUp_Exit
;
goto
dtSplitUp_Exit
;
}
}
...
@@ -1579,7 +1579,7 @@ static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
...
@@ -1579,7 +1579,7 @@ static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
lengthPXD
(
pxd
));
ip
->
i_blocks
+=
LBLK2PBLK
(
sb
,
lengthPXD
(
pxd
));
return
0
;
return
rc
;
}
}
...
@@ -2628,7 +2628,7 @@ static int dtSearchNode(struct inode *ip, s64 lmxaddr, pxd_t * kpxd,
...
@@ -2628,7 +2628,7 @@ static int dtSearchNode(struct inode *ip, s64 lmxaddr, pxd_t * kpxd,
* descend down to leftmost child page
* descend down to leftmost child page
*/
*/
if
(
p
->
header
.
flag
&
BT_LEAF
)
if
(
p
->
header
.
flag
&
BT_LEAF
)
return
ESTALE
;
return
-
ESTALE
;
/* get the leftmost entry */
/* get the leftmost entry */
stbl
=
DT_GETSTBL
(
p
);
stbl
=
DT_GETSTBL
(
p
);
...
@@ -2666,7 +2666,7 @@ static int dtSearchNode(struct inode *ip, s64 lmxaddr, pxd_t * kpxd,
...
@@ -2666,7 +2666,7 @@ static int dtSearchNode(struct inode *ip, s64 lmxaddr, pxd_t * kpxd,
bn
=
le64_to_cpu
(
p
->
header
.
next
);
bn
=
le64_to_cpu
(
p
->
header
.
next
);
else
{
else
{
DT_PUTPAGE
(
mp
);
DT_PUTPAGE
(
mp
);
return
ESTALE
;
return
-
ESTALE
;
}
}
/* unpin current page */
/* unpin current page */
...
@@ -2908,7 +2908,7 @@ static void add_missing_indices(struct inode *inode, s64 bn)
...
@@ -2908,7 +2908,7 @@ static void add_missing_indices(struct inode *inode, s64 bn)
d
->
index
=
cpu_to_le32
(
add_index
(
tid
,
inode
,
bn
,
i
));
d
->
index
=
cpu_to_le32
(
add_index
(
tid
,
inode
,
bn
,
i
));
if
(
dtlck
->
index
>=
dtlck
->
maxcnt
)
if
(
dtlck
->
index
>=
dtlck
->
maxcnt
)
dtlck
=
(
struct
dt_lock
*
)
txLinelock
(
dtlck
);
dtlck
=
(
struct
dt_lock
*
)
txLinelock
(
dtlck
);
lv
=
dtlck
->
lv
;
lv
=
&
dtlck
->
lv
[
dtlck
->
index
]
;
lv
->
offset
=
stbl
[
i
];
lv
->
offset
=
stbl
[
i
];
lv
->
length
=
1
;
lv
->
length
=
1
;
dtlck
->
index
++
;
dtlck
->
index
++
;
...
@@ -3068,7 +3068,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
...
@@ -3068,7 +3068,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
}
}
if
((
rc
=
dtReadFirst
(
ip
,
&
btstack
)))
if
((
rc
=
dtReadFirst
(
ip
,
&
btstack
)))
return
-
rc
;
return
rc
;
DT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
DT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
}
}
...
@@ -3268,7 +3268,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
...
@@ -3268,7 +3268,7 @@ int jfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
DT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
DT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
{
if
(
rc
)
{
free_page
(
dirent_buf
);
free_page
(
dirent_buf
);
return
-
rc
;
return
rc
;
}
}
}
}
...
@@ -4434,8 +4434,8 @@ static void dtLinelockFreelist(dtpage_t * p, /* directory page */
...
@@ -4434,8 +4434,8 @@ static void dtLinelockFreelist(dtpage_t * p, /* directory page */
* flag - JFS_RENAME
* flag - JFS_RENAME
*
*
* RETURNS:
* RETURNS:
* ESTALE - If entry found does not match orig_ino passed in
*
-
ESTALE - If entry found does not match orig_ino passed in
* ENOENT - If no entry can be found to match key
*
-
ENOENT - If no entry can be found to match key
* 0 - If successfully modified entry
* 0 - If successfully modified entry
*/
*/
int
dtModify
(
tid_t
tid
,
struct
inode
*
ip
,
int
dtModify
(
tid_t
tid
,
struct
inode
*
ip
,
...
...
fs/jfs/jfs_extent.c
View file @
f01b6051
...
@@ -83,8 +83,8 @@ extern int jfs_commit_inode(struct inode *, int);
...
@@ -83,8 +83,8 @@ extern int jfs_commit_inode(struct inode *, int);
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
int
int
extAlloc
(
struct
inode
*
ip
,
s64
xlen
,
s64
pno
,
xad_t
*
xp
,
boolean_t
abnr
)
extAlloc
(
struct
inode
*
ip
,
s64
xlen
,
s64
pno
,
xad_t
*
xp
,
boolean_t
abnr
)
...
@@ -207,8 +207,8 @@ extAlloc(struct inode *ip, s64 xlen, s64 pno, xad_t * xp, boolean_t abnr)
...
@@ -207,8 +207,8 @@ extAlloc(struct inode *ip, s64 xlen, s64 pno, xad_t * xp, boolean_t abnr)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
int
extRealloc
(
struct
inode
*
ip
,
s64
nxlen
,
xad_t
*
xp
,
boolean_t
abnr
)
int
extRealloc
(
struct
inode
*
ip
,
s64
nxlen
,
xad_t
*
xp
,
boolean_t
abnr
)
{
{
...
@@ -350,7 +350,7 @@ int extRealloc(struct inode *ip, s64 nxlen, xad_t * xp, boolean_t abnr)
...
@@ -350,7 +350,7 @@ int extRealloc(struct inode *ip, s64 nxlen, xad_t * xp, boolean_t abnr)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
extHint
(
struct
inode
*
ip
,
s64
offset
,
xad_t
*
xp
)
int
extHint
(
struct
inode
*
ip
,
s64
offset
,
xad_t
*
xp
)
{
{
...
@@ -421,8 +421,8 @@ int extHint(struct inode *ip, s64 offset, xad_t * xp)
...
@@ -421,8 +421,8 @@ int extHint(struct inode *ip, s64 offset, xad_t * xp)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
int
extRecord
(
struct
inode
*
ip
,
xad_t
*
xp
)
int
extRecord
(
struct
inode
*
ip
,
xad_t
*
xp
)
{
{
...
@@ -436,7 +436,7 @@ int extRecord(struct inode *ip, xad_t * xp)
...
@@ -436,7 +436,7 @@ int extRecord(struct inode *ip, xad_t * xp)
rc
=
xtUpdate
(
0
,
ip
,
xp
);
rc
=
xtUpdate
(
0
,
ip
,
xp
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
return
(
rc
)
;
return
rc
;
}
}
...
@@ -453,8 +453,8 @@ int extRecord(struct inode *ip, xad_t * xp)
...
@@ -453,8 +453,8 @@ int extRecord(struct inode *ip, xad_t * xp)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
int
extFill
(
struct
inode
*
ip
,
xad_t
*
xp
)
int
extFill
(
struct
inode
*
ip
,
xad_t
*
xp
)
{
{
...
@@ -505,8 +505,8 @@ int extFill(struct inode *ip, xad_t * xp)
...
@@ -505,8 +505,8 @@ int extFill(struct inode *ip, xad_t * xp)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
static
int
static
int
extBalloc
(
struct
inode
*
ip
,
s64
hint
,
s64
*
nblocks
,
s64
*
blkno
)
extBalloc
(
struct
inode
*
ip
,
s64
hint
,
s64
*
nblocks
,
s64
*
blkno
)
...
@@ -535,7 +535,7 @@ extBalloc(struct inode *ip, s64 hint, s64 * nblocks, s64 * blkno)
...
@@ -535,7 +535,7 @@ extBalloc(struct inode *ip, s64 hint, s64 * nblocks, s64 * blkno)
/* if something other than an out of space error,
/* if something other than an out of space error,
* stop and return this error.
* stop and return this error.
*/
*/
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
/* decrease the allocation request size */
/* decrease the allocation request size */
...
@@ -596,8 +596,8 @@ extBalloc(struct inode *ip, s64 hint, s64 * nblocks, s64 * blkno)
...
@@ -596,8 +596,8 @@ extBalloc(struct inode *ip, s64 hint, s64 * nblocks, s64 * blkno)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOSPC - insufficient disk resources.
*
-
ENOSPC - insufficient disk resources.
*/
*/
static
int
static
int
extBrealloc
(
struct
inode
*
ip
,
extBrealloc
(
struct
inode
*
ip
,
...
@@ -610,7 +610,7 @@ extBrealloc(struct inode *ip,
...
@@ -610,7 +610,7 @@ extBrealloc(struct inode *ip,
*
newblkno
=
blkno
;
*
newblkno
=
blkno
;
return
(
0
);
return
(
0
);
}
else
{
}
else
{
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
}
}
...
...
fs/jfs/jfs_imap.c
View file @
f01b6051
...
@@ -121,8 +121,8 @@ static void DBGdiFree(struct inomap * imap, ino_t ino);
...
@@ -121,8 +121,8 @@ static void DBGdiFree(struct inomap * imap, ino_t ino);
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOMEM - insufficient free virtual memory.
*
-
ENOMEM - insufficient free virtual memory.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
diMount
(
struct
inode
*
ipimap
)
int
diMount
(
struct
inode
*
ipimap
)
{
{
...
@@ -138,7 +138,7 @@ int diMount(struct inode *ipimap)
...
@@ -138,7 +138,7 @@ int diMount(struct inode *ipimap)
imap
=
(
struct
inomap
*
)
kmalloc
(
sizeof
(
struct
inomap
),
GFP_KERNEL
);
imap
=
(
struct
inomap
*
)
kmalloc
(
sizeof
(
struct
inomap
),
GFP_KERNEL
);
if
(
imap
==
NULL
)
{
if
(
imap
==
NULL
)
{
jfs_err
(
"diMount: kmalloc returned NULL!"
);
jfs_err
(
"diMount: kmalloc returned NULL!"
);
return
(
ENOMEM
)
;
return
-
ENOMEM
;
}
}
/* read the on-disk inode map control structure. */
/* read the on-disk inode map control structure. */
...
@@ -148,7 +148,7 @@ int diMount(struct inode *ipimap)
...
@@ -148,7 +148,7 @@ int diMount(struct inode *ipimap)
PSIZE
,
0
);
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
kfree
(
imap
);
kfree
(
imap
);
return
(
EIO
)
;
return
-
EIO
;
}
}
/* copy the on-disk version to the in-memory version. */
/* copy the on-disk version to the in-memory version. */
...
@@ -207,8 +207,8 @@ int diMount(struct inode *ipimap)
...
@@ -207,8 +207,8 @@ int diMount(struct inode *ipimap)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOMEM - insufficient free virtual memory.
*
-
ENOMEM - insufficient free virtual memory.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
diUnmount
(
struct
inode
*
ipimap
,
int
mounterror
)
int
diUnmount
(
struct
inode
*
ipimap
,
int
mounterror
)
{
{
...
@@ -254,7 +254,7 @@ int diSync(struct inode *ipimap)
...
@@ -254,7 +254,7 @@ int diSync(struct inode *ipimap)
PSIZE
,
0
);
PSIZE
,
0
);
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
jfs_err
(
"diSync: get_metapage failed!"
);
jfs_err
(
"diSync: get_metapage failed!"
);
return
EIO
;
return
-
EIO
;
}
}
/* copy the in-memory version to the on-disk version */
/* copy the in-memory version to the on-disk version */
...
@@ -320,8 +320,8 @@ int diSync(struct inode *ipimap)
...
@@ -320,8 +320,8 @@ int diSync(struct inode *ipimap)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
* ENOMEM - insufficient memory
*
-
ENOMEM - insufficient memory
*
*
*/
*/
int
diRead
(
struct
inode
*
ip
)
int
diRead
(
struct
inode
*
ip
)
...
@@ -366,7 +366,7 @@ int diRead(struct inode *ip)
...
@@ -366,7 +366,7 @@ int diRead(struct inode *ip)
if
((
lengthPXD
(
&
iagp
->
inoext
[
extno
])
!=
imap
->
im_nbperiext
)
||
if
((
lengthPXD
(
&
iagp
->
inoext
[
extno
])
!=
imap
->
im_nbperiext
)
||
(
addressPXD
(
&
iagp
->
inoext
[
extno
])
==
0
))
{
(
addressPXD
(
&
iagp
->
inoext
[
extno
])
==
0
))
{
release_metapage
(
mp
);
release_metapage
(
mp
);
return
ESTALE
;
return
-
ESTALE
;
}
}
/* get disk block number of the page within the inode extent
/* get disk block number of the page within the inode extent
...
@@ -401,7 +401,7 @@ int diRead(struct inode *ip)
...
@@ -401,7 +401,7 @@ int diRead(struct inode *ip)
mp
=
read_metapage
(
ipimap
,
pageno
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
mp
=
read_metapage
(
ipimap
,
pageno
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
if
(
mp
==
0
)
{
if
(
mp
==
0
)
{
jfs_err
(
"diRead: read_metapage failed"
);
jfs_err
(
"diRead: read_metapage failed"
);
return
EIO
;
return
-
EIO
;
}
}
/* locate the the disk inode requested */
/* locate the the disk inode requested */
...
@@ -411,9 +411,9 @@ int diRead(struct inode *ip)
...
@@ -411,9 +411,9 @@ int diRead(struct inode *ip)
if
(
ip
->
i_ino
!=
le32_to_cpu
(
dp
->
di_number
))
{
if
(
ip
->
i_ino
!=
le32_to_cpu
(
dp
->
di_number
))
{
jfs_err
(
"diRead: i_ino != di_number"
);
jfs_err
(
"diRead: i_ino != di_number"
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
rc
=
EIO
;
rc
=
-
EIO
;
}
else
if
(
le32_to_cpu
(
dp
->
di_nlink
)
==
0
)
}
else
if
(
le32_to_cpu
(
dp
->
di_nlink
)
==
0
)
rc
=
ESTALE
;
rc
=
-
ESTALE
;
else
else
/* copy the disk inode to the in-memory inode */
/* copy the disk inode to the in-memory inode */
rc
=
copy_from_dinode
(
dp
,
ip
);
rc
=
copy_from_dinode
(
dp
,
ip
);
...
@@ -612,7 +612,7 @@ void diFreeSpecial(struct inode *ip)
...
@@ -612,7 +612,7 @@ void diFreeSpecial(struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
diWrite
(
tid_t
tid
,
struct
inode
*
ip
)
int
diWrite
(
tid_t
tid
,
struct
inode
*
ip
)
{
{
...
@@ -671,7 +671,7 @@ int diWrite(tid_t tid, struct inode *ip)
...
@@ -671,7 +671,7 @@ int diWrite(tid_t tid, struct inode *ip)
retry:
retry:
mp
=
read_metapage
(
ipimap
,
pageno
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
mp
=
read_metapage
(
ipimap
,
pageno
<<
sbi
->
l2nbperpage
,
PSIZE
,
1
);
if
(
mp
==
0
)
if
(
mp
==
0
)
return
(
EIO
)
;
return
-
EIO
;
/* get the pointer to the disk inode */
/* get the pointer to the disk inode */
dp
=
(
struct
dinode
*
)
mp
->
data
;
dp
=
(
struct
dinode
*
)
mp
->
data
;
...
@@ -885,7 +885,7 @@ int diWrite(tid_t tid, struct inode *ip)
...
@@ -885,7 +885,7 @@ int diWrite(tid_t tid, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
diFree
(
struct
inode
*
ip
)
int
diFree
(
struct
inode
*
ip
)
{
{
...
@@ -923,7 +923,7 @@ int diFree(struct inode *ip)
...
@@ -923,7 +923,7 @@ int diFree(struct inode *ip)
(
uint
)
inum
,
iagno
,
imap
->
im_nextiag
);
(
uint
)
inum
,
iagno
,
imap
->
im_nextiag
);
dump_mem
(
"imap"
,
imap
,
32
);
dump_mem
(
"imap"
,
imap
,
32
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
return
-
EIO
;
}
}
/* get the allocation group for this ino.
/* get the allocation group for this ino.
...
@@ -972,7 +972,7 @@ int diFree(struct inode *ip)
...
@@ -972,7 +972,7 @@ int diFree(struct inode *ip)
IREAD_UNLOCK
(
ipimap
);
IREAD_UNLOCK
(
ipimap
);
AG_UNLOCK
(
imap
,
agno
);
AG_UNLOCK
(
imap
,
agno
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
return
-
EIO
;
}
}
/*
/*
* inode extent still has some inodes or below low water mark:
* inode extent still has some inodes or below low water mark:
...
@@ -1362,8 +1362,8 @@ diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp)
...
@@ -1362,8 +1362,8 @@ diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
int
diAlloc
(
struct
inode
*
pip
,
boolean_t
dir
,
struct
inode
*
ip
)
int
diAlloc
(
struct
inode
*
pip
,
boolean_t
dir
,
struct
inode
*
ip
)
{
{
...
@@ -1471,7 +1471,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
...
@@ -1471,7 +1471,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
rc
=
diAllocBit
(
imap
,
iagp
,
ino
);
rc
=
diAllocBit
(
imap
,
iagp
,
ino
);
IREAD_UNLOCK
(
ipimap
);
IREAD_UNLOCK
(
ipimap
);
if
(
rc
)
{
if
(
rc
)
{
assert
(
rc
==
EIO
);
assert
(
rc
==
-
EIO
);
}
else
{
}
else
{
/* set the results of the allocation
/* set the results of the allocation
* and write the iag.
* and write the iag.
...
@@ -1548,7 +1548,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
...
@@ -1548,7 +1548,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
rc
=
diAllocBit
(
imap
,
iagp
,
ino
);
rc
=
diAllocBit
(
imap
,
iagp
,
ino
);
IREAD_UNLOCK
(
ipimap
);
IREAD_UNLOCK
(
ipimap
);
if
(
rc
)
{
if
(
rc
)
{
assert
(
rc
==
EIO
);
assert
(
rc
==
-
EIO
);
}
else
{
}
else
{
/* set the results of the allocation
/* set the results of the allocation
* and write the iag.
* and write the iag.
...
@@ -1584,10 +1584,10 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
...
@@ -1584,10 +1584,10 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
* new extent, try to allocate the
* new extent, try to allocate the
* disk inode from somewhere else.
* disk inode from somewhere else.
*/
*/
if
(
rc
==
ENOSPC
)
if
(
rc
==
-
ENOSPC
)
break
;
break
;
assert
(
rc
==
EIO
);
assert
(
rc
==
-
EIO
);
}
else
{
}
else
{
/* set the results of the allocation
/* set the results of the allocation
* and write the iag.
* and write the iag.
...
@@ -1626,7 +1626,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
...
@@ -1626,7 +1626,7 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
AG_UNLOCK
(
imap
,
agno
);
AG_UNLOCK
(
imap
,
agno
);
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
/*
/*
...
@@ -1662,8 +1662,8 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
...
@@ -1662,8 +1662,8 @@ int diAlloc(struct inode *pip, boolean_t dir, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
static
int
diAllocAG
(
struct
inomap
*
imap
,
int
agno
,
boolean_t
dir
,
struct
inode
*
ip
)
diAllocAG
(
struct
inomap
*
imap
,
int
agno
,
boolean_t
dir
,
struct
inode
*
ip
)
...
@@ -1679,7 +1679,7 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1679,7 +1679,7 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
if
(
numfree
>
numinos
)
{
if
(
numfree
>
numinos
)
{
jfs_err
(
"diAllocAG: numfree > numinos"
);
jfs_err
(
"diAllocAG: numfree > numinos"
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
return
-
EIO
;
}
}
/* determine if we should allocate a new extent of free inodes
/* determine if we should allocate a new extent of free inodes
...
@@ -1702,7 +1702,7 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1702,7 +1702,7 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
* below to allocate a free and existing (already backed)
* below to allocate a free and existing (already backed)
* inode from the ag.
* inode from the ag.
*/
*/
if
((
rc
=
diAllocExt
(
imap
,
agno
,
ip
))
!=
ENOSPC
)
if
((
rc
=
diAllocExt
(
imap
,
agno
,
ip
))
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
}
}
...
@@ -1733,8 +1733,8 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1733,8 +1733,8 @@ diAllocAG(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
static
int
diAllocAny
(
struct
inomap
*
imap
,
int
agno
,
boolean_t
dir
,
struct
inode
*
ip
)
diAllocAny
(
struct
inomap
*
imap
,
int
agno
,
boolean_t
dir
,
struct
inode
*
ip
)
...
@@ -1753,7 +1753,7 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1753,7 +1753,7 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
AG_UNLOCK
(
imap
,
ag
);
AG_UNLOCK
(
imap
,
ag
);
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
}
}
...
@@ -1766,13 +1766,13 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1766,13 +1766,13 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
AG_UNLOCK
(
imap
,
ag
);
AG_UNLOCK
(
imap
,
ag
);
if
(
rc
!=
ENOSPC
)
if
(
rc
!=
-
ENOSPC
)
return
(
rc
);
return
(
rc
);
}
}
/* no free disk inodes.
/* no free disk inodes.
*/
*/
return
(
ENOSPC
)
;
return
-
ENOSPC
;
}
}
...
@@ -1798,8 +1798,8 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
...
@@ -1798,8 +1798,8 @@ diAllocAny(struct inomap * imap, int agno, boolean_t dir, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
diAllocIno
(
struct
inomap
*
imap
,
int
agno
,
struct
inode
*
ip
)
static
int
diAllocIno
(
struct
inomap
*
imap
,
int
agno
,
struct
inode
*
ip
)
{
{
...
@@ -1810,7 +1810,7 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
...
@@ -1810,7 +1810,7 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
/* check if there are iags on the ag's free inode list.
/* check if there are iags on the ag's free inode list.
*/
*/
if
((
iagno
=
imap
->
im_agctl
[
agno
].
inofree
)
<
0
)
if
((
iagno
=
imap
->
im_agctl
[
agno
].
inofree
)
<
0
)
return
(
ENOSPC
)
;
return
-
ENOSPC
;
/* obtain read lock on imap inode */
/* obtain read lock on imap inode */
IREAD_LOCK
(
imap
->
im_ipimap
);
IREAD_LOCK
(
imap
->
im_ipimap
);
...
@@ -1832,7 +1832,7 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
...
@@ -1832,7 +1832,7 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
jfs_err
(
" agno = %d, iagno = %d"
,
agno
,
iagno
);
jfs_err
(
" agno = %d, iagno = %d"
,
agno
,
iagno
);
dump_mem
(
"iag"
,
iagp
,
64
);
dump_mem
(
"iag"
,
iagp
,
64
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
updateSuper
(
ip
->
i_sb
,
FM_DIRTY
);
return
EIO
;
return
-
EIO
;
}
}
/* scan the free inode summary map to find an extent
/* scan the free inode summary map to find an extent
...
@@ -1908,8 +1908,8 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
...
@@ -1908,8 +1908,8 @@ static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
diAllocExt
(
struct
inomap
*
imap
,
int
agno
,
struct
inode
*
ip
)
static
int
diAllocExt
(
struct
inomap
*
imap
,
int
agno
,
struct
inode
*
ip
)
{
{
...
@@ -2013,8 +2013,8 @@ static int diAllocExt(struct inomap * imap, int agno, struct inode *ip)
...
@@ -2013,8 +2013,8 @@ static int diAllocExt(struct inomap * imap, int agno, struct inode *ip)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
diAllocBit
(
struct
inomap
*
imap
,
struct
iag
*
iagp
,
int
ino
)
static
int
diAllocBit
(
struct
inomap
*
imap
,
struct
iag
*
iagp
,
int
ino
)
{
{
...
@@ -2153,8 +2153,8 @@ static int diAllocBit(struct inomap * imap, struct iag * iagp, int ino)
...
@@ -2153,8 +2153,8 @@ static int diAllocBit(struct inomap * imap, struct iag * iagp, int ino)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
diNewExt
(
struct
inomap
*
imap
,
struct
iag
*
iagp
,
int
extno
)
static
int
diNewExt
(
struct
inomap
*
imap
,
struct
iag
*
iagp
,
int
extno
)
{
{
...
@@ -2267,7 +2267,7 @@ static int diNewExt(struct inomap * imap, struct iag * iagp, int extno)
...
@@ -2267,7 +2267,7 @@ static int diNewExt(struct inomap * imap, struct iag * iagp, int extno)
*/
*/
dmp
=
get_metapage
(
ipimap
,
blkno
+
i
,
PSIZE
,
1
);
dmp
=
get_metapage
(
ipimap
,
blkno
+
i
,
PSIZE
,
1
);
if
(
dmp
==
NULL
)
{
if
(
dmp
==
NULL
)
{
rc
=
EIO
;
rc
=
-
EIO
;
goto
error_out
;
goto
error_out
;
}
}
dp
=
(
struct
dinode
*
)
dmp
->
data
;
dp
=
(
struct
dinode
*
)
dmp
->
data
;
...
@@ -2413,8 +2413,8 @@ static int diNewExt(struct inomap * imap, struct iag * iagp, int extno)
...
@@ -2413,8 +2413,8 @@ static int diNewExt(struct inomap * imap, struct iag * iagp, int extno)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
*
ENOSPC
- insufficient disk resources.
*
-ENOSPC
- insufficient disk resources.
* EIO - i/o error.
*
-
EIO - i/o error.
*
*
* serialization:
* serialization:
* AG lock held on entry/exit;
* AG lock held on entry/exit;
...
@@ -2485,7 +2485,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
...
@@ -2485,7 +2485,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
/* release the inode map lock */
/* release the inode map lock */
IWRITE_UNLOCK
(
ipimap
);
IWRITE_UNLOCK
(
ipimap
);
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out
;
goto
out
;
}
}
...
@@ -2516,7 +2516,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
...
@@ -2516,7 +2516,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
/* release the inode map lock */
/* release the inode map lock */
IWRITE_UNLOCK
(
ipimap
);
IWRITE_UNLOCK
(
ipimap
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
out
;
goto
out
;
}
}
iagp
=
(
struct
iag
*
)
mp
->
data
;
iagp
=
(
struct
iag
*
)
mp
->
data
;
...
@@ -2548,7 +2548,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
...
@@ -2548,7 +2548,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
/* release the inode map lock */
/* release the inode map lock */
IWRITE_UNLOCK
(
ipimap
);
IWRITE_UNLOCK
(
ipimap
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
out
;
goto
out
;
}
}
...
@@ -2614,7 +2614,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
...
@@ -2614,7 +2614,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
/* read the iag */
/* read the iag */
if
((
rc
=
diIAGRead
(
imap
,
iagno
,
&
mp
)))
{
if
((
rc
=
diIAGRead
(
imap
,
iagno
,
&
mp
)))
{
IREAD_UNLOCK
(
ipimap
);
IREAD_UNLOCK
(
ipimap
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
out
;
goto
out
;
}
}
iagp
=
(
struct
iag
*
)
mp
->
data
;
iagp
=
(
struct
iag
*
)
mp
->
data
;
...
@@ -2653,7 +2653,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
...
@@ -2653,7 +2653,7 @@ diNewIAG(struct inomap * imap, int *iagnop, int agno, struct metapage ** mpp)
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success.
* 0 - success.
* EIO - i/o error.
*
-
EIO - i/o error.
*/
*/
static
int
diIAGRead
(
struct
inomap
*
imap
,
int
iagno
,
struct
metapage
**
mpp
)
static
int
diIAGRead
(
struct
inomap
*
imap
,
int
iagno
,
struct
metapage
**
mpp
)
{
{
...
@@ -2666,7 +2666,7 @@ static int diIAGRead(struct inomap * imap, int iagno, struct metapage ** mpp)
...
@@ -2666,7 +2666,7 @@ static int diIAGRead(struct inomap * imap, int iagno, struct metapage ** mpp)
/* read the iag. */
/* read the iag. */
*
mpp
=
read_metapage
(
ipimap
,
blkno
,
PSIZE
,
0
);
*
mpp
=
read_metapage
(
ipimap
,
blkno
,
PSIZE
,
0
);
if
(
*
mpp
==
NULL
)
{
if
(
*
mpp
==
NULL
)
{
return
(
EIO
)
;
return
-
EIO
;
}
}
return
(
0
);
return
(
0
);
...
@@ -2713,7 +2713,8 @@ static int diFindFree(u32 word, int start)
...
@@ -2713,7 +2713,8 @@ static int diFindFree(u32 word, int start)
* is_free - If TRUE indicates inode should be marked freed, otherwise
* is_free - If TRUE indicates inode should be marked freed, otherwise
* indicates inode should be marked allocated.
* indicates inode should be marked allocated.
*
*
* RETURNS: 0 for success
* RETURN VALUES:
* 0 for success
*/
*/
int
int
diUpdatePMap
(
struct
inode
*
ipimap
,
diUpdatePMap
(
struct
inode
*
ipimap
,
...
@@ -3009,7 +3010,7 @@ static void duplicateIXtree(struct super_block *sb, s64 blkno,
...
@@ -3009,7 +3010,7 @@ static void duplicateIXtree(struct super_block *sb, s64 blkno,
*
*
* RETURN VALUES:
* RETURN VALUES:
* 0 - success
* 0 - success
* ENOMEM - insufficient memory
*
-
ENOMEM - insufficient memory
*/
*/
static
int
copy_from_dinode
(
struct
dinode
*
dip
,
struct
inode
*
ip
)
static
int
copy_from_dinode
(
struct
dinode
*
dip
,
struct
inode
*
ip
)
{
{
...
...
fs/jfs/jfs_logmgr.c
View file @
f01b6051
...
@@ -667,7 +667,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
...
@@ -667,7 +667,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
/* group committed already ? */
/* group committed already ? */
if
(
tblk
->
flag
&
tblkGC_COMMITTED
)
{
if
(
tblk
->
flag
&
tblkGC_COMMITTED
)
{
if
(
tblk
->
flag
&
tblkGC_ERROR
)
if
(
tblk
->
flag
&
tblkGC_ERROR
)
rc
=
EIO
;
rc
=
-
EIO
;
LOGGC_UNLOCK
(
log
);
LOGGC_UNLOCK
(
log
);
return
rc
;
return
rc
;
...
@@ -701,7 +701,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
...
@@ -701,7 +701,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
if
(
tblk
->
flag
&
tblkGC_COMMITTED
)
{
if
(
tblk
->
flag
&
tblkGC_COMMITTED
)
{
if
(
tblk
->
flag
&
tblkGC_ERROR
)
if
(
tblk
->
flag
&
tblkGC_ERROR
)
rc
=
EIO
;
rc
=
-
EIO
;
LOGGC_UNLOCK
(
log
);
LOGGC_UNLOCK
(
log
);
return
rc
;
return
rc
;
...
@@ -717,7 +717,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
...
@@ -717,7 +717,7 @@ int lmGroupCommit(struct jfs_log * log, struct tblock * tblk)
/* removed from commit queue */
/* removed from commit queue */
if
(
tblk
->
flag
&
tblkGC_ERROR
)
if
(
tblk
->
flag
&
tblkGC_ERROR
)
rc
=
EIO
;
rc
=
-
EIO
;
LOGGC_UNLOCK
(
log
);
LOGGC_UNLOCK
(
log
);
return
rc
;
return
rc
;
...
@@ -1068,7 +1068,7 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
...
@@ -1068,7 +1068,7 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
struct
jfs_log
*
log
;
struct
jfs_log
*
log
;
if
(
!
(
log
=
kmalloc
(
sizeof
(
struct
jfs_log
),
GFP_KERNEL
)))
if
(
!
(
log
=
kmalloc
(
sizeof
(
struct
jfs_log
),
GFP_KERNEL
)))
return
ENOMEM
;
return
-
ENOMEM
;
memset
(
log
,
0
,
sizeof
(
struct
jfs_log
));
memset
(
log
,
0
,
sizeof
(
struct
jfs_log
));
init_waitqueue_head
(
&
log
->
syncwait
);
init_waitqueue_head
(
&
log
->
syncwait
);
...
@@ -1113,7 +1113,6 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
...
@@ -1113,7 +1113,6 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
}
}
if
((
rc
=
bd_claim
(
bdev
,
log
)))
{
if
((
rc
=
bd_claim
(
bdev
,
log
)))
{
rc
=
-
rc
;
goto
close
;
goto
close
;
}
}
...
@@ -1169,7 +1168,7 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
...
@@ -1169,7 +1168,7 @@ int lmLogOpen(struct super_block *sb, struct jfs_log ** logptr)
* PARAMETER: log - log structure
* PARAMETER: log - log structure
*
*
* RETURN: 0 - if ok
* RETURN: 0 - if ok
* EINVAL - bad log magic number or superblock dirty
*
-
EINVAL - bad log magic number or superblock dirty
* error returned from logwait()
* error returned from logwait()
*
*
* serialization: single first open thread
* serialization: single first open thread
...
@@ -1209,21 +1208,21 @@ int lmLogInit(struct jfs_log * log)
...
@@ -1209,21 +1208,21 @@ int lmLogInit(struct jfs_log * log)
if
(
logsuper
->
magic
!=
cpu_to_le32
(
LOGMAGIC
))
{
if
(
logsuper
->
magic
!=
cpu_to_le32
(
LOGMAGIC
))
{
jfs_warn
(
"*** Log Format Error ! ***"
);
jfs_warn
(
"*** Log Format Error ! ***"
);
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
errout20
;
goto
errout20
;
}
}
/* logredo() should have been run successfully. */
/* logredo() should have been run successfully. */
if
(
logsuper
->
state
!=
cpu_to_le32
(
LOGREDONE
))
{
if
(
logsuper
->
state
!=
cpu_to_le32
(
LOGREDONE
))
{
jfs_warn
(
"*** Log Is Dirty ! ***"
);
jfs_warn
(
"*** Log Is Dirty ! ***"
);
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
errout20
;
goto
errout20
;
}
}
/* initialize log inode from log superblock */
/* initialize log inode from log superblock */
if
(
test_bit
(
log_INLINELOG
,
&
log
->
flag
))
{
if
(
test_bit
(
log_INLINELOG
,
&
log
->
flag
))
{
if
(
log
->
size
!=
le32_to_cpu
(
logsuper
->
size
))
{
if
(
log
->
size
!=
le32_to_cpu
(
logsuper
->
size
))
{
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
errout20
;
goto
errout20
;
}
}
jfs_info
(
"lmLogInit: inline log:0x%p base:0x%Lx size:0x%x"
,
jfs_info
(
"lmLogInit: inline log:0x%p base:0x%Lx size:0x%x"
,
...
@@ -1610,7 +1609,7 @@ static int lmLogFileSystem(struct jfs_log * log, char *uuid, int activate)
...
@@ -1610,7 +1609,7 @@ static int lmLogFileSystem(struct jfs_log * log, char *uuid, int activate)
if
(
i
==
MAX_ACTIVE
)
{
if
(
i
==
MAX_ACTIVE
)
{
jfs_warn
(
"Somebody stomped on the journal!"
);
jfs_warn
(
"Somebody stomped on the journal!"
);
lbmFree
(
bpsuper
);
lbmFree
(
bpsuper
);
return
EIO
;
return
-
EIO
;
}
}
}
}
...
@@ -1698,7 +1697,7 @@ static int lbmLogInit(struct jfs_log * log)
...
@@ -1698,7 +1697,7 @@ static int lbmLogInit(struct jfs_log * log)
error:
error:
lbmLogShutdown
(
log
);
lbmLogShutdown
(
log
);
return
(
ENOMEM
)
;
return
-
ENOMEM
;
}
}
...
@@ -2007,7 +2006,7 @@ static int lbmIOWait(struct lbuf * bp, int flag)
...
@@ -2007,7 +2006,7 @@ static int lbmIOWait(struct lbuf * bp, int flag)
LCACHE_SLEEP_COND
(
bp
->
l_ioevent
,
(
bp
->
l_flag
&
lbmDONE
),
flags
);
LCACHE_SLEEP_COND
(
bp
->
l_ioevent
,
(
bp
->
l_flag
&
lbmDONE
),
flags
);
rc
=
(
bp
->
l_flag
&
lbmERROR
)
?
EIO
:
0
;
rc
=
(
bp
->
l_flag
&
lbmERROR
)
?
-
EIO
:
0
;
if
(
flag
&
lbmFREE
)
if
(
flag
&
lbmFREE
)
lbmfree
(
bp
);
lbmfree
(
bp
);
...
...
fs/jfs/jfs_mount.c
View file @
f01b6051
...
@@ -72,11 +72,11 @@ static int logMOUNT(struct super_block *sb);
...
@@ -72,11 +72,11 @@ static int logMOUNT(struct super_block *sb);
*
*
* PARAMETER: sb - super block
* PARAMETER: sb - super block
*
*
* RETURN: EBUSY - device already mounted or open for write
* RETURN:
-
EBUSY - device already mounted or open for write
* EBUSY - cvrdvp already mounted;
*
-
EBUSY - cvrdvp already mounted;
* EBUSY - mount table full
*
-
EBUSY - mount table full
*
ENOTDIR
- cvrdvp not directory on a device mount
*
-ENOTDIR
- cvrdvp not directory on a device mount
* ENXIO - device open failure
*
-
ENXIO - device open failure
*/
*/
int
jfs_mount
(
struct
super_block
*
sb
)
int
jfs_mount
(
struct
super_block
*
sb
)
{
{
...
@@ -98,7 +98,7 @@ int jfs_mount(struct super_block *sb)
...
@@ -98,7 +98,7 @@ int jfs_mount(struct super_block *sb)
ipaimap
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
0
);
ipaimap
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
0
);
if
(
ipaimap
==
NULL
)
{
if
(
ipaimap
==
NULL
)
{
jfs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
jfs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
errout20
;
goto
errout20
;
}
}
sbi
->
ipaimap
=
ipaimap
;
sbi
->
ipaimap
=
ipaimap
;
...
@@ -118,7 +118,7 @@ int jfs_mount(struct super_block *sb)
...
@@ -118,7 +118,7 @@ int jfs_mount(struct super_block *sb)
*/
*/
ipbmap
=
diReadSpecial
(
sb
,
BMAP_I
,
0
);
ipbmap
=
diReadSpecial
(
sb
,
BMAP_I
,
0
);
if
(
ipbmap
==
NULL
)
{
if
(
ipbmap
==
NULL
)
{
rc
=
EIO
;
rc
=
-
EIO
;
goto
errout22
;
goto
errout22
;
}
}
...
@@ -149,7 +149,7 @@ int jfs_mount(struct super_block *sb)
...
@@ -149,7 +149,7 @@ int jfs_mount(struct super_block *sb)
ipaimap2
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
1
);
ipaimap2
=
diReadSpecial
(
sb
,
AGGREGATE_I
,
1
);
if
(
ipaimap2
==
0
)
{
if
(
ipaimap2
==
0
)
{
jfs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
jfs_err
(
"jfs_mount: Faild to read AGGREGATE_I"
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
errout35
;
goto
errout35
;
}
}
sbi
->
ipaimap2
=
ipaimap2
;
sbi
->
ipaimap2
=
ipaimap2
;
...
@@ -178,7 +178,7 @@ int jfs_mount(struct super_block *sb)
...
@@ -178,7 +178,7 @@ int jfs_mount(struct super_block *sb)
if
(
ipimap
==
NULL
)
{
if
(
ipimap
==
NULL
)
{
jfs_err
(
"jfs_mount: Failed to read FILESYSTEM_I"
);
jfs_err
(
"jfs_mount: Failed to read FILESYSTEM_I"
);
/* open fileset secondary inode allocation map */
/* open fileset secondary inode allocation map */
rc
=
EIO
;
rc
=
-
EIO
;
goto
errout40
;
goto
errout40
;
}
}
jfs_info
(
"jfs_mount: ipimap:0x%p"
,
ipimap
);
jfs_info
(
"jfs_mount: ipimap:0x%p"
,
ipimap
);
...
@@ -327,8 +327,7 @@ static int chkSuper(struct super_block *sb)
...
@@ -327,8 +327,7 @@ static int chkSuper(struct super_block *sb)
/* validate fs signature */
/* validate fs signature */
if
(
strncmp
(
j_sb
->
s_magic
,
JFS_MAGIC
,
4
)
||
if
(
strncmp
(
j_sb
->
s_magic
,
JFS_MAGIC
,
4
)
||
j_sb
->
s_version
>
cpu_to_le32
(
JFS_VERSION
))
{
j_sb
->
s_version
>
cpu_to_le32
(
JFS_VERSION
))
{
//rc = EFORMAT;
rc
=
-
EINVAL
;
rc
=
EINVAL
;
goto
out
;
goto
out
;
}
}
...
@@ -336,7 +335,7 @@ static int chkSuper(struct super_block *sb)
...
@@ -336,7 +335,7 @@ static int chkSuper(struct super_block *sb)
#ifdef _JFS_4K
#ifdef _JFS_4K
if
(
bsize
!=
PSIZE
)
{
if
(
bsize
!=
PSIZE
)
{
jfs_err
(
"Currently only 4K block size supported!"
);
jfs_err
(
"Currently only 4K block size supported!"
);
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
out
;
goto
out
;
}
}
#endif
/* _JFS_4K */
#endif
/* _JFS_4K */
...
@@ -372,7 +371,7 @@ static int chkSuper(struct super_block *sb)
...
@@ -372,7 +371,7 @@ static int chkSuper(struct super_block *sb)
if
(
j_sb
->
s_state
!=
cpu_to_le32
(
FM_CLEAN
)
&&
if
(
j_sb
->
s_state
!=
cpu_to_le32
(
FM_CLEAN
)
&&
!
(
sb
->
s_flags
&
MS_RDONLY
))
{
!
(
sb
->
s_flags
&
MS_RDONLY
))
{
jfs_err
(
"jfs_mount: Mount Failure: File System Dirty."
);
jfs_err
(
"jfs_mount: Mount Failure: File System Dirty."
);
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
out
;
goto
out
;
}
}
...
...
fs/jfs/jfs_txnmgr.c
View file @
f01b6051
...
@@ -257,7 +257,7 @@ int txInit(void)
...
@@ -257,7 +257,7 @@ int txInit(void)
size
=
sizeof
(
struct
tblock
)
*
nTxBlock
;
size
=
sizeof
(
struct
tblock
)
*
nTxBlock
;
TxBlock
=
(
struct
tblock
*
)
vmalloc
(
size
);
TxBlock
=
(
struct
tblock
*
)
vmalloc
(
size
);
if
(
TxBlock
==
NULL
)
if
(
TxBlock
==
NULL
)
return
ENOMEM
;
return
-
ENOMEM
;
for
(
k
=
1
;
k
<
nTxBlock
-
1
;
k
++
)
{
for
(
k
=
1
;
k
<
nTxBlock
-
1
;
k
++
)
{
TxBlock
[
k
].
next
=
k
+
1
;
TxBlock
[
k
].
next
=
k
+
1
;
...
@@ -283,7 +283,7 @@ int txInit(void)
...
@@ -283,7 +283,7 @@ int txInit(void)
TxLock
=
(
struct
tlock
*
)
vmalloc
(
size
);
TxLock
=
(
struct
tlock
*
)
vmalloc
(
size
);
if
(
TxLock
==
NULL
)
{
if
(
TxLock
==
NULL
)
{
vfree
(
TxBlock
);
vfree
(
TxBlock
);
return
ENOMEM
;
return
-
ENOMEM
;
}
}
/* initialize tlock table */
/* initialize tlock table */
...
@@ -1098,7 +1098,7 @@ int txCommit(tid_t tid, /* transaction identifier */
...
@@ -1098,7 +1098,7 @@ int txCommit(tid_t tid, /* transaction identifier */
struct
inode
**
iplist
,
/* list of inode to commit */
struct
inode
**
iplist
,
/* list of inode to commit */
int
flag
)
int
flag
)
{
{
int
rc
=
0
,
rc1
=
0
;
int
rc
=
0
;
struct
commit
cd
;
struct
commit
cd
;
struct
jfs_log
*
log
;
struct
jfs_log
*
log
;
struct
tblock
*
tblk
;
struct
tblock
*
tblk
;
...
@@ -1318,8 +1318,6 @@ int txCommit(tid_t tid, /* transaction identifier */
...
@@ -1318,8 +1318,6 @@ int txCommit(tid_t tid, /* transaction identifier */
out:
out:
if
(
rc
!=
0
)
if
(
rc
!=
0
)
txAbortCommit
(
&
cd
,
rc
);
txAbortCommit
(
&
cd
,
rc
);
else
rc
=
rc1
;
TheEnd:
TheEnd:
jfs_info
(
"txCommit: tid = %d, returning %d"
,
tid
,
rc
);
jfs_info
(
"txCommit: tid = %d, returning %d"
,
tid
,
rc
);
...
...
fs/jfs/jfs_unicode.c
View file @
f01b6051
...
@@ -68,8 +68,7 @@ int jfs_strtoUCS(wchar_t * to,
...
@@ -68,8 +68,7 @@ int jfs_strtoUCS(wchar_t * to,
jfs_err
(
"jfs_strtoUCS: char2uni returned %d."
,
charlen
);
jfs_err
(
"jfs_strtoUCS: char2uni returned %d."
,
charlen
);
jfs_err
(
"charset = %s, char = 0x%x"
,
jfs_err
(
"charset = %s, char = 0x%x"
,
codepage
->
charset
,
(
unsigned
char
)
*
from
);
codepage
->
charset
,
(
unsigned
char
)
*
from
);
to
[
i
]
=
0x003f
;
/* a question mark */
return
charlen
;
charlen
=
1
;
}
}
}
}
...
@@ -89,16 +88,21 @@ int get_UCSname(struct component_name * uniName, struct dentry *dentry,
...
@@ -89,16 +88,21 @@ int get_UCSname(struct component_name * uniName, struct dentry *dentry,
int
length
=
dentry
->
d_name
.
len
;
int
length
=
dentry
->
d_name
.
len
;
if
(
length
>
JFS_NAME_MAX
)
if
(
length
>
JFS_NAME_MAX
)
return
ENAMETOOLONG
;
return
-
ENAMETOOLONG
;
uniName
->
name
=
uniName
->
name
=
kmalloc
((
length
+
1
)
*
sizeof
(
wchar_t
),
GFP_NOFS
);
kmalloc
((
length
+
1
)
*
sizeof
(
wchar_t
),
GFP_NOFS
);
if
(
uniName
->
name
==
NULL
)
if
(
uniName
->
name
==
NULL
)
return
ENOSPC
;
return
-
ENOSPC
;
uniName
->
namlen
=
jfs_strtoUCS
(
uniName
->
name
,
dentry
->
d_name
.
name
,
uniName
->
namlen
=
jfs_strtoUCS
(
uniName
->
name
,
dentry
->
d_name
.
name
,
length
,
nls_tab
);
length
,
nls_tab
);
if
(
uniName
->
namlen
<
0
)
{
kfree
(
uniName
->
name
);
return
uniName
->
namlen
;
}
return
0
;
return
0
;
}
}
fs/jfs/jfs_xtree.c
View file @
f01b6051
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
BT_PUTPAGE(MP);\
BT_PUTPAGE(MP);\
updateSuper((IP)->i_sb, FM_DIRTY);\
updateSuper((IP)->i_sb, FM_DIRTY);\
MP = NULL;\
MP = NULL;\
RC = EIO;\
RC =
-
EIO;\
}\
}\
}\
}\
}
}
...
@@ -814,7 +814,7 @@ int xtInsert(tid_t tid, /* transaction id */
...
@@ -814,7 +814,7 @@ int xtInsert(tid_t tid, /* transaction id */
/* This test must follow XT_GETSEARCH since mp must be valid if
/* This test must follow XT_GETSEARCH since mp must be valid if
* we branch to out: */
* we branch to out: */
if
(
cmp
==
0
)
{
if
(
cmp
==
0
)
{
rc
=
EEXIST
;
rc
=
-
EEXIST
;
goto
out
;
goto
out
;
}
}
...
@@ -1033,7 +1033,7 @@ xtSplitUp(tid_t tid,
...
@@ -1033,7 +1033,7 @@ xtSplitUp(tid_t tid,
xtSplitRoot
(
tid
,
ip
,
split
,
&
rmp
)
:
xtSplitRoot
(
tid
,
ip
,
split
,
&
rmp
)
:
xtSplitPage
(
tid
,
ip
,
split
,
&
rmp
,
&
rbn
);
xtSplitPage
(
tid
,
ip
,
split
,
&
rmp
,
&
rbn
);
if
(
rc
)
if
(
rc
)
return
EIO
;
return
-
EIO
;
XT_PUTPAGE
(
smp
);
XT_PUTPAGE
(
smp
);
...
@@ -1238,7 +1238,7 @@ xtSplitPage(tid_t tid, struct inode *ip,
...
@@ -1238,7 +1238,7 @@ xtSplitPage(tid_t tid, struct inode *ip,
rbn
=
addressPXD
(
pxd
);
rbn
=
addressPXD
(
pxd
);
rmp
=
get_metapage
(
ip
,
rbn
,
PSIZE
,
1
);
rmp
=
get_metapage
(
ip
,
rbn
,
PSIZE
,
1
);
if
(
rmp
==
NULL
)
if
(
rmp
==
NULL
)
return
EIO
;
return
-
EIO
;
jfs_info
(
"xtSplitPage: ip:0x%p smp:0x%p rmp:0x%p"
,
ip
,
smp
,
rmp
);
jfs_info
(
"xtSplitPage: ip:0x%p smp:0x%p rmp:0x%p"
,
ip
,
smp
,
rmp
);
...
@@ -1485,7 +1485,7 @@ xtSplitRoot(tid_t tid,
...
@@ -1485,7 +1485,7 @@ xtSplitRoot(tid_t tid,
rbn
=
addressPXD
(
pxd
);
rbn
=
addressPXD
(
pxd
);
rmp
=
get_metapage
(
ip
,
rbn
,
PSIZE
,
1
);
rmp
=
get_metapage
(
ip
,
rbn
,
PSIZE
,
1
);
if
(
rmp
==
NULL
)
if
(
rmp
==
NULL
)
return
EIO
;
return
-
EIO
;
jfs_info
(
"xtSplitRoot: ip:0x%p rmp:0x%p"
,
ip
,
rmp
);
jfs_info
(
"xtSplitRoot: ip:0x%p rmp:0x%p"
,
ip
,
rmp
);
...
@@ -2409,7 +2409,7 @@ int xtAppend(tid_t tid, /* transaction id */
...
@@ -2409,7 +2409,7 @@ int xtAppend(tid_t tid, /* transaction id */
XT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
XT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
if
(
cmp
==
0
)
{
if
(
cmp
==
0
)
{
rc
=
EEXIST
;
rc
=
-
EEXIST
;
goto
out
;
goto
out
;
}
}
//insert:
//insert:
...
@@ -2557,7 +2557,7 @@ int xtDelete(tid_t tid, struct inode *ip, s64 xoff, s32 xlen, int flag)
...
@@ -2557,7 +2557,7 @@ int xtDelete(tid_t tid, struct inode *ip, s64 xoff, s32 xlen, int flag)
if
(
cmp
)
{
if
(
cmp
)
{
/* unpin the leaf page */
/* unpin the leaf page */
XT_PUTPAGE
(
mp
);
XT_PUTPAGE
(
mp
);
return
ENOENT
;
return
-
ENOENT
;
}
}
/*
/*
...
@@ -2788,7 +2788,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
...
@@ -2788,7 +2788,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
/* validate extent offset */
/* validate extent offset */
offset
=
xoff
<<
JFS_SBI
(
ip
->
i_sb
)
->
l2bsize
;
offset
=
xoff
<<
JFS_SBI
(
ip
->
i_sb
)
->
l2bsize
;
if
(
offset
>=
ip
->
i_size
)
if
(
offset
>=
ip
->
i_size
)
return
ESTALE
;
/* stale extent */
return
-
ESTALE
;
/* stale extent */
jfs_info
(
"xtRelocate: xtype:%d xoff:0x%lx xlen:0x%x xaddr:0x%lx:0x%lx"
,
jfs_info
(
"xtRelocate: xtype:%d xoff:0x%lx xlen:0x%x xaddr:0x%lx:0x%lx"
,
xtype
,
(
ulong
)
xoff
,
xlen
,
(
ulong
)
oxaddr
,
(
ulong
)
nxaddr
);
xtype
,
(
ulong
)
xoff
,
xlen
,
(
ulong
)
oxaddr
,
(
ulong
)
nxaddr
);
...
@@ -2804,7 +2804,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
...
@@ -2804,7 +2804,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
return
rc
;
return
rc
;
if
(
cmp
)
{
if
(
cmp
)
{
XT_PUTPAGE
(
pmp
);
XT_PUTPAGE
(
pmp
);
return
ESTALE
;
return
-
ESTALE
;
}
}
/* retrieve search result */
/* retrieve search result */
...
@@ -2814,7 +2814,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
...
@@ -2814,7 +2814,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
xad
=
&
pp
->
xad
[
index
];
xad
=
&
pp
->
xad
[
index
];
if
(
addressXAD
(
xad
)
!=
oxaddr
||
lengthXAD
(
xad
)
!=
xlen
)
{
if
(
addressXAD
(
xad
)
!=
oxaddr
||
lengthXAD
(
xad
)
!=
xlen
)
{
XT_PUTPAGE
(
pmp
);
XT_PUTPAGE
(
pmp
);
return
ESTALE
;
return
-
ESTALE
;
}
}
}
else
{
/* (xtype == XTPAGE) */
}
else
{
/* (xtype == XTPAGE) */
...
@@ -2824,7 +2824,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
...
@@ -2824,7 +2824,7 @@ xtRelocate(tid_t tid, struct inode * ip, xad_t * oxad, /* old XAD */
return
rc
;
return
rc
;
if
(
cmp
)
{
if
(
cmp
)
{
XT_PUTPAGE
(
pmp
);
XT_PUTPAGE
(
pmp
);
return
ESTALE
;
return
-
ESTALE
;
}
}
/* retrieve search result */
/* retrieve search result */
...
@@ -3127,7 +3127,7 @@ static int xtSearchNode(struct inode *ip, xad_t * xad, /* required XAD entry */
...
@@ -3127,7 +3127,7 @@ static int xtSearchNode(struct inode *ip, xad_t * xad, /* required XAD entry */
if
(
rc
)
if
(
rc
)
return
rc
;
return
rc
;
if
(
p
->
header
.
flag
&
BT_LEAF
)
if
(
p
->
header
.
flag
&
BT_LEAF
)
return
ESTALE
;
return
-
ESTALE
;
lim
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
XTENTRYSTART
;
lim
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
XTENTRYSTART
;
...
@@ -3439,7 +3439,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
...
@@ -3439,7 +3439,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
getPage:
getPage:
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
/* process entries backward from last index */
/* process entries backward from last index */
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
...
@@ -3667,7 +3667,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
...
@@ -3667,7 +3667,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
bn
=
parent
->
bn
;
bn
=
parent
->
bn
;
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
index
=
parent
->
index
;
index
=
parent
->
index
;
...
@@ -3924,7 +3924,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
...
@@ -3924,7 +3924,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
xoff
=
(
committed_size
>>
JFS_SBI
(
ip
->
i_sb
)
->
l2bsize
)
-
1
;
xoff
=
(
committed_size
>>
JFS_SBI
(
ip
->
i_sb
)
->
l2bsize
)
-
1
;
rc
=
xtSearch
(
ip
,
xoff
,
&
cmp
,
&
btstack
,
0
);
rc
=
xtSearch
(
ip
,
xoff
,
&
cmp
,
&
btstack
,
0
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
assert
(
cmp
==
0
);
assert
(
cmp
==
0
);
XT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
XT_GETSEARCH
(
ip
,
btstack
.
top
,
bn
,
mp
,
p
,
index
);
}
else
{
}
else
{
...
@@ -3941,7 +3941,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
...
@@ -3941,7 +3941,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
getPage:
getPage:
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
/* process entries backward from last index */
/* process entries backward from last index */
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
...
@@ -3986,7 +3986,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
...
@@ -3986,7 +3986,7 @@ s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
bn
=
parent
->
bn
;
bn
=
parent
->
bn
;
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
index
=
parent
->
index
;
index
=
parent
->
index
;
...
@@ -4311,7 +4311,7 @@ int xtGather(btree_t *t)
...
@@ -4311,7 +4311,7 @@ int xtGather(btree_t *t)
bn
=
parent
->
bn
;
bn
=
parent
->
bn
;
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
XT_GETPAGE
(
ip
,
bn
,
mp
,
PSIZE
,
p
,
rc
);
if
(
rc
)
if
(
rc
)
return
EIO
;
return
-
EIO
;
/* first subroot page which
/* first subroot page which
* covers all new allocated blocks
* covers all new allocated blocks
...
...
fs/jfs/namei.c
View file @
f01b6051
...
@@ -87,7 +87,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode,
...
@@ -87,7 +87,7 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode,
*/
*/
ip
=
ialloc
(
dip
,
mode
);
ip
=
ialloc
(
dip
,
mode
);
if
(
ip
==
NULL
)
{
if
(
ip
==
NULL
)
{
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out2
;
goto
out2
;
}
}
...
@@ -160,8 +160,8 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode,
...
@@ -160,8 +160,8 @@ int jfs_create(struct inode *dip, struct dentry *dentry, int mode,
out1:
out1:
jfs_info
(
"jfs_create: rc:%d"
,
-
rc
);
jfs_info
(
"jfs_create: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
...
@@ -195,7 +195,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
...
@@ -195,7 +195,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
/* link count overflow on parent directory ? */
/* link count overflow on parent directory ? */
if
(
dip
->
i_nlink
==
JFS_LINK_MAX
)
{
if
(
dip
->
i_nlink
==
JFS_LINK_MAX
)
{
rc
=
EMLINK
;
rc
=
-
EMLINK
;
goto
out1
;
goto
out1
;
}
}
...
@@ -213,7 +213,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
...
@@ -213,7 +213,7 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
*/
*/
ip
=
ialloc
(
dip
,
S_IFDIR
|
mode
);
ip
=
ialloc
(
dip
,
S_IFDIR
|
mode
);
if
(
ip
==
NULL
)
{
if
(
ip
==
NULL
)
{
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out2
;
goto
out2
;
}
}
...
@@ -290,8 +290,8 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
...
@@ -290,8 +290,8 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
out1:
out1:
jfs_info
(
"jfs_mkdir: rc:%d"
,
-
rc
);
jfs_info
(
"jfs_mkdir: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
/*
/*
...
@@ -302,8 +302,8 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
...
@@ -302,8 +302,8 @@ int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
* PARAMETER: dip - parent inode
* PARAMETER: dip - parent inode
* dentry - child directory dentry
* dentry - child directory dentry
*
*
* RETURN: EINVAL - if name is . or ..
* RETURN:
-
EINVAL - if name is . or ..
* EINVAL - if . or .. exist but are invalid.
*
-
EINVAL - if . or .. exist but are invalid.
* errors from subroutines
* errors from subroutines
*
*
* note:
* note:
...
@@ -327,7 +327,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
...
@@ -327,7 +327,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
/* directory must be empty to be removed */
/* directory must be empty to be removed */
if
(
!
dtEmpty
(
ip
))
{
if
(
!
dtEmpty
(
ip
))
{
rc
=
ENOTEMPTY
;
rc
=
-
ENOTEMPTY
;
goto
out
;
goto
out
;
}
}
...
@@ -413,7 +413,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
...
@@ -413,7 +413,7 @@ int jfs_rmdir(struct inode *dip, struct dentry *dentry)
out:
out:
jfs_info
(
"jfs_rmdir: rc:%d"
,
rc
);
jfs_info
(
"jfs_rmdir: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
/*
/*
...
@@ -499,7 +499,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
...
@@ -499,7 +499,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
up
(
&
JFS_IP
(
dip
)
->
commit_sem
);
up
(
&
JFS_IP
(
dip
)
->
commit_sem
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
IWRITE_UNLOCK
(
ip
);
IWRITE_UNLOCK
(
ip
);
rc
=
-
new_size
;
/* We return -rc */
rc
=
new_size
;
goto
out1
;
goto
out1
;
}
}
tblk
=
tid_to_tblock
(
tid
);
tblk
=
tid_to_tblock
(
tid
);
...
@@ -561,8 +561,8 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
...
@@ -561,8 +561,8 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
out1:
out1:
free_UCSname
(
&
dname
);
free_UCSname
(
&
dname
);
out:
out:
jfs_info
(
"jfs_unlink: rc:%d"
,
-
rc
);
jfs_info
(
"jfs_unlink: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
/*
/*
...
@@ -587,7 +587,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
...
@@ -587,7 +587,7 @@ int jfs_unlink(struct inode *dip, struct dentry *dentry)
* PARAMETERS: cd - pointer to commit data structure.
* PARAMETERS: cd - pointer to commit data structure.
* current inode is the one to truncate.
* current inode is the one to truncate.
*
*
* RETURN
: Errors from subroutines
* RETURN: Errors from subroutines
*/
*/
s64
commitZeroLink
(
tid_t
tid
,
struct
inode
*
ip
)
s64
commitZeroLink
(
tid_t
tid
,
struct
inode
*
ip
)
{
{
...
@@ -777,7 +777,7 @@ int jfs_link(struct dentry *old_dentry,
...
@@ -777,7 +777,7 @@ int jfs_link(struct dentry *old_dentry,
down
(
&
JFS_IP
(
ip
)
->
commit_sem
);
down
(
&
JFS_IP
(
ip
)
->
commit_sem
);
if
(
ip
->
i_nlink
==
JFS_LINK_MAX
)
{
if
(
ip
->
i_nlink
==
JFS_LINK_MAX
)
{
rc
=
EMLINK
;
rc
=
-
EMLINK
;
goto
out
;
goto
out
;
}
}
...
@@ -815,7 +815,7 @@ int jfs_link(struct dentry *old_dentry,
...
@@ -815,7 +815,7 @@ int jfs_link(struct dentry *old_dentry,
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
up
(
&
JFS_IP
(
ip
)
->
commit_sem
);
jfs_info
(
"jfs_link: rc:%d"
,
rc
);
jfs_info
(
"jfs_link: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
/*
/*
...
@@ -873,7 +873,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
...
@@ -873,7 +873,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
*/
*/
ip
=
ialloc
(
dip
,
S_IFLNK
|
0777
);
ip
=
ialloc
(
dip
,
S_IFLNK
|
0777
);
if
(
ip
==
NULL
)
{
if
(
ip
==
NULL
)
{
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out2
;
goto
out2
;
}
}
...
@@ -965,7 +965,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
...
@@ -965,7 +965,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
if
(
mp
==
NULL
)
{
if
(
mp
==
NULL
)
{
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
JFS_REMOVE
);
JFS_REMOVE
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
out3
;
goto
out3
;
}
}
memcpy
(
mp
->
data
,
name
,
copy_size
);
memcpy
(
mp
->
data
,
name
,
copy_size
);
...
@@ -983,7 +983,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
...
@@ -983,7 +983,7 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
ip
->
i_blocks
=
LBLK2PBLK
(
sb
,
xlen
);
ip
->
i_blocks
=
LBLK2PBLK
(
sb
,
xlen
);
}
else
{
}
else
{
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
JFS_REMOVE
);
dtDelete
(
tid
,
dip
,
&
dname
,
&
ino
,
JFS_REMOVE
);
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out3
;
goto
out3
;
}
}
}
}
...
@@ -1030,8 +1030,8 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
...
@@ -1030,8 +1030,8 @@ int jfs_symlink(struct inode *dip, struct dentry *dentry, const char *name)
#endif
#endif
out1:
out1:
jfs_info
(
"jfs_symlink: rc:%d"
,
-
rc
);
jfs_info
(
"jfs_symlink: rc:%d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
...
@@ -1080,7 +1080,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
...
@@ -1080,7 +1080,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
*/
*/
rc
=
dtSearch
(
old_dir
,
&
old_dname
,
&
ino
,
&
btstack
,
JFS_LOOKUP
);
rc
=
dtSearch
(
old_dir
,
&
old_dname
,
&
ino
,
&
btstack
,
JFS_LOOKUP
);
if
(
rc
||
(
ino
!=
old_ip
->
i_ino
))
{
if
(
rc
||
(
ino
!=
old_ip
->
i_ino
))
{
rc
=
ENOENT
;
rc
=
-
ENOENT
;
goto
out3
;
goto
out3
;
}
}
...
@@ -1090,26 +1090,26 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
...
@@ -1090,26 +1090,26 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
rc
=
dtSearch
(
new_dir
,
&
new_dname
,
&
ino
,
&
btstack
,
JFS_LOOKUP
);
rc
=
dtSearch
(
new_dir
,
&
new_dname
,
&
ino
,
&
btstack
,
JFS_LOOKUP
);
if
(
rc
==
0
)
{
if
(
rc
==
0
)
{
if
((
new_ip
==
0
)
||
(
ino
!=
new_ip
->
i_ino
))
{
if
((
new_ip
==
0
)
||
(
ino
!=
new_ip
->
i_ino
))
{
rc
=
ESTALE
;
rc
=
-
ESTALE
;
goto
out3
;
goto
out3
;
}
}
}
else
if
(
rc
!=
ENOENT
)
}
else
if
(
rc
!=
-
ENOENT
)
goto
out3
;
goto
out3
;
else
if
(
new_ip
)
{
else
if
(
new_ip
)
{
/* no entry exists, but one was expected */
/* no entry exists, but one was expected */
rc
=
ESTALE
;
rc
=
-
ESTALE
;
goto
out3
;
goto
out3
;
}
}
if
(
S_ISDIR
(
old_ip
->
i_mode
))
{
if
(
S_ISDIR
(
old_ip
->
i_mode
))
{
if
(
new_ip
)
{
if
(
new_ip
)
{
if
(
!
dtEmpty
(
new_ip
))
{
if
(
!
dtEmpty
(
new_ip
))
{
rc
=
ENOTEMPTY
;
rc
=
-
ENOTEMPTY
;
goto
out3
;
goto
out3
;
}
}
}
else
if
((
new_dir
!=
old_dir
)
&&
}
else
if
((
new_dir
!=
old_dir
)
&&
(
new_dir
->
i_nlink
==
JFS_LINK_MAX
))
{
(
new_dir
->
i_nlink
==
JFS_LINK_MAX
))
{
rc
=
EMLINK
;
rc
=
-
EMLINK
;
goto
out3
;
goto
out3
;
}
}
}
else
if
(
new_ip
)
}
else
if
(
new_ip
)
...
@@ -1147,7 +1147,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
...
@@ -1147,7 +1147,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
/* free block resources */
/* free block resources */
if
((
new_size
=
commitZeroLink
(
tid
,
new_ip
))
<
0
)
{
if
((
new_size
=
commitZeroLink
(
tid
,
new_ip
))
<
0
)
{
txAbort
(
tid
,
1
);
/* Marks FS Dirty */
txAbort
(
tid
,
1
);
/* Marks FS Dirty */
rc
=
-
new_size
;
/* We return -rc */
rc
=
new_size
;
goto
out4
;
goto
out4
;
}
}
tblk
=
tid_to_tblock
(
tid
);
tblk
=
tid_to_tblock
(
tid
);
...
@@ -1264,7 +1264,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
...
@@ -1264,7 +1264,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
new_size
=
xtTruncate_pmap
(
tid
,
new_ip
,
new_size
);
new_size
=
xtTruncate_pmap
(
tid
,
new_ip
,
new_size
);
if
(
new_size
<
0
)
{
if
(
new_size
<
0
)
{
txAbort
(
tid
,
1
);
txAbort
(
tid
,
1
);
rc
=
-
new_size
;
/* We return -rc */
rc
=
new_size
;
}
else
}
else
rc
=
txCommit
(
tid
,
1
,
&
new_ip
,
COMMIT_SYNC
);
rc
=
txCommit
(
tid
,
1
,
&
new_ip
,
COMMIT_SYNC
);
txEnd
(
tid
);
txEnd
(
tid
);
...
@@ -1291,7 +1291,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
...
@@ -1291,7 +1291,7 @@ int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
}
}
jfs_info
(
"jfs_rename: returning %d"
,
rc
);
jfs_info
(
"jfs_rename: returning %d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
...
@@ -1318,7 +1318,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
...
@@ -1318,7 +1318,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
ip
=
ialloc
(
dir
,
mode
);
ip
=
ialloc
(
dir
,
mode
);
if
(
ip
==
NULL
)
{
if
(
ip
==
NULL
)
{
rc
=
ENOSPC
;
rc
=
-
ENOSPC
;
goto
out1
;
goto
out1
;
}
}
...
@@ -1372,7 +1372,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
...
@@ -1372,7 +1372,7 @@ int jfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
out:
out:
jfs_info
(
"jfs_mknod: returning %d"
,
rc
);
jfs_info
(
"jfs_mknod: returning %d"
,
rc
);
return
-
rc
;
return
rc
;
}
}
static
struct
dentry
*
jfs_lookup
(
struct
inode
*
dip
,
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
static
struct
dentry
*
jfs_lookup
(
struct
inode
*
dip
,
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
...
@@ -1395,15 +1395,15 @@ static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, struc
...
@@ -1395,15 +1395,15 @@ static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, struc
else
{
else
{
if
((
rc
=
if
((
rc
=
get_UCSname
(
&
key
,
dentry
,
JFS_SBI
(
dip
->
i_sb
)
->
nls_tab
)))
get_UCSname
(
&
key
,
dentry
,
JFS_SBI
(
dip
->
i_sb
)
->
nls_tab
)))
return
ERR_PTR
(
-
rc
);
return
ERR_PTR
(
rc
);
rc
=
dtSearch
(
dip
,
&
key
,
&
inum
,
&
btstack
,
JFS_LOOKUP
);
rc
=
dtSearch
(
dip
,
&
key
,
&
inum
,
&
btstack
,
JFS_LOOKUP
);
free_UCSname
(
&
key
);
free_UCSname
(
&
key
);
if
(
rc
==
ENOENT
)
{
if
(
rc
==
-
ENOENT
)
{
d_add
(
dentry
,
NULL
);
d_add
(
dentry
,
NULL
);
return
ERR_PTR
(
0
);
return
ERR_PTR
(
0
);
}
else
if
(
rc
)
{
}
else
if
(
rc
)
{
jfs_err
(
"jfs_lookup: dtSearch returned %d"
,
rc
);
jfs_err
(
"jfs_lookup: dtSearch returned %d"
,
rc
);
return
ERR_PTR
(
-
rc
);
return
ERR_PTR
(
rc
);
}
}
}
}
...
...
fs/jfs/resize.c
View file @
f01b6051
...
@@ -182,7 +182,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
...
@@ -182,7 +182,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
/* file system cannot be shrinked */
/* file system cannot be shrinked */
if
(
newFSSize
<
bmp
->
db_mapsize
)
{
if
(
newFSSize
<
bmp
->
db_mapsize
)
{
rc
=
EINVAL
;
rc
=
-
EINVAL
;
goto
out
;
goto
out
;
}
}
...
@@ -315,7 +315,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
...
@@ -315,7 +315,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
if
(
mapSize
>
t64
)
{
if
(
mapSize
>
t64
)
{
printk
(
KERN_ERR
"jfs_extendfs: mapSize (0x%Lx) > t64 (0x%Lx)
\n
"
,
printk
(
KERN_ERR
"jfs_extendfs: mapSize (0x%Lx) > t64 (0x%Lx)
\n
"
,
(
long
long
)
mapSize
,
(
long
long
)
t64
);
(
long
long
)
mapSize
,
(
long
long
)
t64
);
rc
=
EIO
;
rc
=
-
EIO
;
goto
error_out
;
goto
error_out
;
}
}
nblocks
=
min
(
t64
-
mapSize
,
XSize
);
nblocks
=
min
(
t64
-
mapSize
,
XSize
);
...
...
fs/jfs/super.c
View file @
f01b6051
...
@@ -519,7 +519,7 @@ static int __init init_jfs_fs(void)
...
@@ -519,7 +519,7 @@ static int __init init_jfs_fs(void)
metapage_exit
();
metapage_exit
();
free_slab:
free_slab:
kmem_cache_destroy
(
jfs_inode_cachep
);
kmem_cache_destroy
(
jfs_inode_cachep
);
return
-
rc
;
return
rc
;
}
}
static
void
__exit
exit_jfs_fs
(
void
)
static
void
__exit
exit_jfs_fs
(
void
)
...
...
fs/jfs/xattr.c
View file @
f01b6051
...
@@ -183,7 +183,7 @@ static int ea_write_inline(struct inode *ip, struct jfs_ea_list *ealist,
...
@@ -183,7 +183,7 @@ static int ea_write_inline(struct inode *ip, struct jfs_ea_list *ealist,
* used for an inline EA.
* used for an inline EA.
*/
*/
if
(
!
(
ji
->
mode2
&
INLINEEA
)
&&
!
(
ji
->
ea
.
flag
&
DXD_INLINE
))
if
(
!
(
ji
->
mode2
&
INLINEEA
)
&&
!
(
ji
->
ea
.
flag
&
DXD_INLINE
))
return
-
1
;
return
-
EPERM
;
DXDsize
(
ea
,
size
);
DXDsize
(
ea
,
size
);
DXDlength
(
ea
,
0
);
DXDlength
(
ea
,
0
);
...
@@ -252,7 +252,7 @@ static int ea_write(struct inode *ip, struct jfs_ea_list *ealist, int size,
...
@@ -252,7 +252,7 @@ static int ea_write(struct inode *ip, struct jfs_ea_list *ealist, int size,
rc
=
dbAlloc
(
ip
,
INOHINT
(
ip
),
nblocks
,
&
blkno
);
rc
=
dbAlloc
(
ip
,
INOHINT
(
ip
),
nblocks
,
&
blkno
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
/*
/*
* Now have nblocks worth of storage to stuff into the FEALIST.
* Now have nblocks worth of storage to stuff into the FEALIST.
...
@@ -513,7 +513,7 @@ static int ea_get(struct inode *inode, struct ea_buffer *ea_buf, int min_size)
...
@@ -513,7 +513,7 @@ static int ea_get(struct inode *inode, struct ea_buffer *ea_buf, int min_size)
rc
=
dbAlloc
(
inode
,
INOHINT
(
inode
),
(
s64
)
blocks_needed
,
rc
=
dbAlloc
(
inode
,
INOHINT
(
inode
),
(
s64
)
blocks_needed
,
&
blkno
);
&
blkno
);
if
(
rc
)
if
(
rc
)
return
-
rc
;
return
rc
;
DXDlength
(
&
ea_buf
->
new_ea
,
blocks_needed
);
DXDlength
(
&
ea_buf
->
new_ea
,
blocks_needed
);
DXDaddress
(
&
ea_buf
->
new_ea
,
blkno
);
DXDaddress
(
&
ea_buf
->
new_ea
,
blkno
);
...
...
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