Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
bfaa1ea4
Commit
bfaa1ea4
authored
Jan 09, 2004
by
Nathan Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[XFS] Fix build with tracing enabled, couple of portability macros, move externs into headers.
SGI Modid: 2.5.x-xfs:slinx:160245a
parent
1e31c07b
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
215 additions
and
293 deletions
+215
-293
fs/xfs/linux/xfs_linux.h
fs/xfs/linux/xfs_linux.h
+5
-0
fs/xfs/xfs_alloc.c
fs/xfs/xfs_alloc.c
+2
-9
fs/xfs/xfs_alloc.h
fs/xfs/xfs_alloc.h
+7
-17
fs/xfs/xfs_attr.h
fs/xfs/xfs_attr.h
+0
-9
fs/xfs/xfs_attr_sf.h
fs/xfs/xfs_attr_sf.h
+2
-10
fs/xfs/xfs_bmap.c
fs/xfs/xfs_bmap.c
+6
-7
fs/xfs/xfs_bmap_btree.c
fs/xfs/xfs_bmap_btree.c
+7
-5
fs/xfs/xfs_bmap_btree.h
fs/xfs/xfs_bmap_btree.h
+5
-10
fs/xfs/xfs_buf_item.c
fs/xfs/xfs_buf_item.c
+5
-4
fs/xfs/xfs_buf_item.h
fs/xfs/xfs_buf_item.h
+10
-18
fs/xfs/xfs_da_btree.c
fs/xfs/xfs_da_btree.c
+0
-7
fs/xfs/xfs_dfrag.c
fs/xfs/xfs_dfrag.c
+2
-2
fs/xfs/xfs_dir.c
fs/xfs/xfs_dir.c
+47
-43
fs/xfs/xfs_dir.h
fs/xfs/xfs_dir.h
+0
-8
fs/xfs/xfs_dir2_trace.c
fs/xfs/xfs_dir2_trace.c
+64
-47
fs/xfs/xfs_dir2_trace.h
fs/xfs/xfs_dir2_trace.h
+3
-12
fs/xfs/xfs_dir_sf.h
fs/xfs/xfs_dir_sf.h
+5
-15
fs/xfs/xfs_iget.c
fs/xfs/xfs_iget.c
+1
-10
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.c
+20
-34
fs/xfs/xfs_inode.h
fs/xfs/xfs_inode.h
+17
-9
fs/xfs/xfs_vfsops.c
fs/xfs/xfs_vfsops.c
+0
-13
fs/xfs/xfs_vnodeops.c
fs/xfs/xfs_vnodeops.c
+7
-4
No files found.
fs/xfs/linux/xfs_linux.h
View file @
bfaa1ea4
...
...
@@ -100,6 +100,11 @@ static inline void set_buffer_unwritten_io(struct buffer_head *bh)
#define xfs_inherit_nodump xfs_params.inherit_nodump.val
#define xfs_inherit_noatime xfs_params.inherit_noatim.val
#define current_cpu() smp_processor_id()
#define current_pid() (current->pid)
#define current_fsuid(cred) (current->fsuid)
#define current_fsgid(cred) (current->fsgid)
#define NBPP PAGE_SIZE
#define DPPSHFT (PAGE_SHIFT - 9)
#define NDPP (1 << (PAGE_SHIFT - 9))
...
...
fs/xfs/xfs_alloc.c
View file @
bfaa1ea4
...
...
@@ -54,13 +54,6 @@
#include "xfs_error.h"
#if defined(DEBUG)
/*
* Allocation tracing.
*/
ktrace_t
*
xfs_alloc_trace_buf
;
#endif
#define XFS_ABSDIFF(a,b) (((a) <= (b)) ? ((b) - (a)) : ((a) - (b)))
#define XFSA_FIXUP_BNO_OK 1
...
...
@@ -73,6 +66,8 @@ xfs_alloc_search_busy(xfs_trans_t *tp,
xfs_extlen_t
len
);
#if defined(XFS_ALLOC_TRACE)
ktrace_t
*
xfs_alloc_trace_buf
;
#define TRACE_ALLOC(s,a) \
xfs_alloc_trace_alloc(fname, s, a, __LINE__)
#define TRACE_FREE(s,a,b,x,f) \
...
...
@@ -85,8 +80,6 @@ xfs_alloc_search_busy(xfs_trans_t *tp,
xfs_alloc_trace_busy(fname, s, mp, ag, -1, -1, sl, tp, XFS_ALLOC_KTRACE_UNBUSY, __LINE__)
#define TRACE_BUSYSEARCH(fname,s,ag,agb,l,sl,tp) \
xfs_alloc_trace_busy(fname, s, mp, ag, agb, l, sl, tp, XFS_ALLOC_KTRACE_BUSYSEARCH, __LINE__)
#else
#define TRACE_ALLOC(s,a)
#define TRACE_FREE(s,a,b,x,f)
...
...
fs/xfs/xfs_alloc.h
View file @
bfaa1ea4
...
...
@@ -95,6 +95,13 @@ typedef struct xfs_alloc_arg {
#ifdef __KERNEL__
#if defined(XFS_ALLOC_TRACE)
/*
* Allocation tracing buffer size.
*/
#define XFS_ALLOC_TRACE_SIZE 4096
extern
ktrace_t
*
xfs_alloc_trace_buf
;
/*
* Types for alloc tracing.
*/
...
...
@@ -104,25 +111,8 @@ typedef struct xfs_alloc_arg {
#define XFS_ALLOC_KTRACE_BUSY 4
#define XFS_ALLOC_KTRACE_UNBUSY 5
#define XFS_ALLOC_KTRACE_BUSYSEARCH 6
/*
* Allocation tracing buffer size.
*/
#define XFS_ALLOC_TRACE_SIZE 4096
#ifdef XFS_ALL_TRACE
#define XFS_ALLOC_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ALLOC_TRACE
#endif
/*
* Prototypes for visible xfs_alloc.c routines
*/
/*
* Compute and fill in value of m_ag_maxlevels.
*/
...
...
fs/xfs/xfs_attr.h
View file @
bfaa1ea4
...
...
@@ -45,15 +45,6 @@
* as possible so as to fit into the literal area of the inode.
*/
#ifdef XFS_ALL_TRACE
#define XFS_ATTR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ATTR_TRACE
#endif
/*========================================================================
* External interfaces
*========================================================================*/
...
...
fs/xfs/xfs_attr_sf.h
View file @
bfaa1ea4
...
...
@@ -104,14 +104,7 @@ int xfs_attr_sf_totsize(struct xfs_inode *dp);
(INT_GET(((xfs_attr_shortform_t *)((dp)->i_afp->if_u1.if_data))->hdr.totsize, ARCH_CONVERT))
#endif
#ifdef XFS_ALL_TRACE
#define XFS_ATTR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ATTR_TRACE
#endif
#if defined(XFS_ATTR_TRACE)
/*
* Kernel tracing support for attribute lists
*/
...
...
@@ -121,6 +114,7 @@ struct xfs_da_node_entry;
struct
xfs_attr_leafblock
;
#define XFS_ATTR_TRACE_SIZE 4096
/* size of global trace buffer */
extern
ktrace_t
*
xfs_attr_trace_buf
;
/*
* Trace record types.
...
...
@@ -130,8 +124,6 @@ struct xfs_attr_leafblock;
#define XFS_ATTR_KTRACE_L_CB 3
/* context, btree */
#define XFS_ATTR_KTRACE_L_CL 4
/* context, leaf */
#if defined(XFS_ATTR_TRACE)
void
xfs_attr_trace_l_c
(
char
*
where
,
struct
xfs_attr_list_context
*
context
);
void
xfs_attr_trace_l_cn
(
char
*
where
,
struct
xfs_attr_list_context
*
context
,
struct
xfs_da_intnode
*
node
);
...
...
fs/xfs/xfs_bmap.c
View file @
bfaa1ea4
...
...
@@ -68,9 +68,6 @@
#include "xfs_trans_space.h"
#include "xfs_buf_item.h"
#ifdef DEBUG
ktrace_t
*
xfs_bmap_trace_buf
;
#endif
#ifdef XFSDEBUG
STATIC
void
...
...
@@ -404,7 +401,7 @@ xfs_bmap_validate_ret(
#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
#endif
/* DEBUG */
#if defined(
DEBUG) && defined(
XFS_RW_TRACE)
#if defined(XFS_RW_TRACE)
STATIC
void
xfs_bunmap_trace
(
xfs_inode_t
*
ip
,
...
...
@@ -414,7 +411,7 @@ xfs_bunmap_trace(
inst_t
*
ra
);
#else
#define xfs_bunmap_trace(ip, bno, len, flags, ra)
#endif
/*
DEBUG &&
XFS_RW_TRACE */
#endif
/* XFS_RW_TRACE */
STATIC
int
xfs_bmap_count_tree
(
...
...
@@ -3543,6 +3540,8 @@ xfs_bmap_search_extents(
#ifdef XFS_BMAP_TRACE
ktrace_t
*
xfs_bmap_trace_buf
;
/*
* Add a bmap trace buffer entry. Base routine for the others.
*/
...
...
@@ -3722,7 +3721,7 @@ xfs_bmap_worst_indlen(
return
rval
;
}
#if defined(
DEBUG) && defined(
XFS_RW_TRACE)
#if defined(XFS_RW_TRACE)
STATIC
void
xfs_bunmap_trace
(
xfs_inode_t
*
ip
,
...
...
@@ -3742,7 +3741,7 @@ xfs_bunmap_trace(
(
void
*
)(
__psint_t
)((
xfs_dfiloff_t
)
bno
&
0xffffffff
),
(
void
*
)(
__psint_t
)
len
,
(
void
*
)(
__psint_t
)
flags
,
(
void
*
)
(
__psint_t
)
private
.
p_cpuid
,
(
void
*
)
current_cpu
()
,
(
void
*
)
ra
,
(
void
*
)
0
,
(
void
*
)
0
,
...
...
fs/xfs/xfs_bmap_btree.c
View file @
bfaa1ea4
...
...
@@ -81,6 +81,13 @@ STATIC int xfs_bmbt_updkey(xfs_btree_cur_t *, xfs_bmbt_key_t *, int);
#if defined(XFS_BMBT_TRACE)
static
char
ARGS
[]
=
"args"
;
static
char
ENTRY
[]
=
"entry"
;
static
char
ERROR
[]
=
"error"
;
#undef EXIT
static
char
EXIT
[]
=
"exit"
;
/*
* Add a trace buffer entry for the arguments given to the routine,
* generic form.
...
...
@@ -305,11 +312,6 @@ xfs_bmbt_trace_cursor(
xfs_bmbt_trace_argik(fname, c, i, k, __LINE__)
#define XFS_BMBT_TRACE_CURSOR(c,s) \
xfs_bmbt_trace_cursor(fname, c, s, __LINE__)
static
char
ARGS
[]
=
"args"
;
static
char
ENTRY
[]
=
"entry"
;
static
char
ERROR
[]
=
"error"
;
#undef EXIT
static
char
EXIT
[]
=
"exit"
;
#else
#define XFS_BMBT_TRACE_ARGBI(c,b,i)
#define XFS_BMBT_TRACE_ARGBII(c,b,i,j)
...
...
fs/xfs/xfs_bmap_btree.h
View file @
bfaa1ea4
...
...
@@ -435,6 +435,10 @@ int xfs_bmap_sanity_check(struct xfs_mount *mp, xfs_bmbt_block_t *bb,
INT_GET((bb)->bb_numrecs, ARCH_CONVERT) <= (mp)->m_bmap_dmxr[(level) != 0])
#endif
#ifdef __KERNEL__
#if defined(XFS_BMBT_TRACE)
/*
* Trace buffer entry types.
*/
...
...
@@ -449,18 +453,9 @@ int xfs_bmap_sanity_check(struct xfs_mount *mp, xfs_bmbt_block_t *bb,
#define XFS_BMBT_TRACE_SIZE 4096
/* size of global trace buffer */
#define XFS_BMBT_KTRACE_SIZE 32
/* size of per-inode trace buffer */
#if defined(XFS_ALL_TRACE)
#define XFS_BMBT_TRACE
extern
ktrace_t
*
xfs_bmbt_trace_buf
;
#endif
#if !defined(DEBUG)
#undef XFS_BMBT_TRACE
#endif
#ifdef __KERNEL__
/*
* Prototypes for xfs_bmap.c to call.
*/
...
...
fs/xfs/xfs_buf_item.c
View file @
bfaa1ea4
...
...
@@ -1207,13 +1207,14 @@ xfs_buf_item_trace(
(
void
*
)((
unsigned
long
)
bip
->
bli_flags
),
(
void
*
)((
unsigned
long
)
bip
->
bli_recur
),
(
void
*
)((
unsigned
long
)
atomic_read
(
&
bip
->
bli_refcount
)),
(
void
*
)
XFS_BUF_ADDR
(
bp
),
(
void
*
)((
unsigned
long
)
(
0xFFFFFFFF
&
XFS_BUF_ADDR
(
bp
)
>>
32
)),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
XFS_BUF_ADDR
(
bp
))),
(
void
*
)((
unsigned
long
)
XFS_BUF_COUNT
(
bp
)),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
(
XFS_BFLAGS
(
bp
)
>>
32
))),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
XFS_BFLAGS
(
bp
))),
(
void
*
)((
unsigned
long
)
XFS_BUF_BFLAGS
(
bp
)),
XFS_BUF_FSPRIVATE
(
bp
,
void
*
),
XFS_BUF_FSPRIVATE2
(
bp
,
void
*
),
(
void
*
)
((
unsigned
long
)
bp
->
b_pincount
),
(
void
*
)
XFS_BUF_ISPINNED
(
bp
),
(
void
*
)
XFS_BUF_IODONE_FUNC
(
bp
),
(
void
*
)((
unsigned
long
)(
XFS_BUF_VALUSEMA
(
bp
))),
(
void
*
)
bip
->
bli_item
.
li_desc
,
...
...
fs/xfs/xfs_buf_item.h
View file @
bfaa1ea4
...
...
@@ -104,6 +104,15 @@ typedef struct xfs_buf_log_format_t {
struct
xfs_buf
;
struct
ktrace
;
struct
xfs_mount
;
struct
xfs_buf_log_item
;
#if defined(XFS_BLI_TRACE)
#define XFS_BLI_TRACE_SIZE 32
void
xfs_buf_item_trace
(
char
*
,
struct
xfs_buf_log_item
*
);
#else
#define xfs_buf_item_trace(id, bip)
#endif
/*
* This is the in core log item structure used to track information
...
...
@@ -116,7 +125,7 @@ typedef struct xfs_buf_log_item {
unsigned
int
bli_flags
;
/* misc flags */
unsigned
int
bli_recur
;
/* lock recursion count */
atomic_t
bli_refcount
;
/* cnt of tp refs */
#ifdef
DEBUG
#ifdef
XFS_BLI_TRACE
struct
ktrace
*
bli_trace
;
/* event trace buf */
#endif
#ifdef XFS_TRANS_DEBUG
...
...
@@ -137,23 +146,6 @@ typedef struct xfs_buf_cancel {
struct
xfs_buf_cancel
*
bc_next
;
}
xfs_buf_cancel_t
;
#define XFS_BLI_TRACE_SIZE 32
#if defined(XFS_ALL_TRACE)
#define XFS_BLI_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_BLI_TRACE
#endif
#if defined(XFS_BLI_TRACE)
void
xfs_buf_item_trace
(
char
*
,
xfs_buf_log_item_t
*
);
#else
#define xfs_buf_item_trace(id, bip)
#endif
void
xfs_buf_item_init
(
struct
xfs_buf
*
,
struct
xfs_mount
*
);
void
xfs_buf_item_relse
(
struct
xfs_buf
*
);
void
xfs_buf_item_log
(
xfs_buf_log_item_t
*
,
uint
,
uint
);
...
...
fs/xfs/xfs_da_btree.c
View file @
bfaa1ea4
...
...
@@ -66,13 +66,6 @@
#include "xfs_error.h"
#include "xfs_bit.h"
#if defined(XFSDEBUG) && defined(CONFIG_KDB)
#undef xfs_buftrace
#define xfs_buftrace(A,B) \
printk(" xfs_buftrace : %s (0x%p)\n", A, B); \
BUG();
#endif
/*
* xfs_da_btree.c
*
...
...
fs/xfs/xfs_dfrag.c
View file @
bfaa1ea4
...
...
@@ -153,12 +153,12 @@ xfs_swapext(
if
((
error
=
_MAC_XFS_IACCESS
(
tip
,
MACWRITE
,
NULL
)))
{
goto
error0
;
}
if
((
current
->
fsuid
!=
ip
->
i_d
.
di_uid
)
&&
if
((
current
_fsuid
(
cred
)
!=
ip
->
i_d
.
di_uid
)
&&
(
error
=
xfs_iaccess
(
ip
,
S_IWUSR
,
NULL
))
&&
!
capable_cred
(
NULL
,
CAP_FOWNER
))
{
goto
error0
;
}
if
((
current
->
fsuid
!=
tip
->
i_d
.
di_uid
)
&&
if
((
current
_fsuid
(
cred
)
!=
tip
->
i_d
.
di_uid
)
&&
(
error
=
xfs_iaccess
(
tip
,
S_IWUSR
,
NULL
))
&&
!
capable_cred
(
NULL
,
CAP_FOWNER
))
{
goto
error0
;
...
...
fs/xfs/xfs_dir.c
View file @
bfaa1ea4
...
...
@@ -1093,10 +1093,10 @@ void
xfs_dir_trace_g_du
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DU
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1107,11 +1107,11 @@ void
xfs_dir_trace_g_dub
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_dablk_t
bno
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUB
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
bno
,
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
bno
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1122,15 +1122,17 @@ void
xfs_dir_trace_g_dun
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_da_intnode_t
*
node
)
{
int
last
=
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
;
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUN
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
node
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
btree
[
0
].
hashval
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
btree
[
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
node
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
btree
[
0
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
btree
[
last
].
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1141,15 +1143,17 @@ void
xfs_dir_trace_g_dul
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_dir_leafblock_t
*
leaf
)
{
int
last
=
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
;
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUL
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
leaf
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
entries
[
0
].
hashval
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
entries
[
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
leaf
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
entries
[
0
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
entries
[
last
].
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1161,11 +1165,11 @@ xfs_dir_trace_g_due(char *where, xfs_inode_t *dp, uio_t *uio,
xfs_dir_leaf_entry_t
*
entry
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUE
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
entry
->
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
entry
->
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1176,12 +1180,12 @@ void
xfs_dir_trace_g_duc
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_off_t
cookie
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUC
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)(
cookie
>>
32
),
(
__psunsigned_t
)(
cookie
&
0xFFFFFFFF
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)((
unsigned
long
)(
cookie
>>
32
)
),
(
void
*
)((
unsigned
long
)(
cookie
&
0xFFFFFFFF
)
),
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1191,15 +1195,15 @@ xfs_dir_trace_g_duc(char *where, xfs_inode_t *dp, uio_t *uio, xfs_off_t cookie)
*/
void
xfs_dir_trace_enter
(
int
type
,
char
*
where
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
,
__psunsigned_t
a7
,
__psunsigned_t
a8
,
__psunsigned_t
a9
,
__psunsigned_t
a10
,
__psunsigned_t
a11
)
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
,
void
*
a8
,
void
*
a9
,
void
*
a10
,
void
*
a11
)
{
ASSERT
(
xfs_dir_trace_buf
);
ktrace_enter
(
xfs_dir_trace_buf
,
(
void
*
)((
__psunsigned_t
)
type
),
ktrace_enter
(
xfs_dir_trace_buf
,
(
void
*
)((
void
*
)
type
),
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
...
...
fs/xfs/xfs_dir.h
View file @
bfaa1ea4
...
...
@@ -43,14 +43,6 @@
* as possible so as to fit into the literal area of the inode.
*/
#ifdef XFS_ALL_TRACE
#define XFS_DIR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_DIR_TRACE
#endif
/*========================================================================
* Function prototypes for the kernel.
*========================================================================*/
...
...
fs/xfs/xfs_dir2_trace.c
View file @
bfaa1ea4
...
...
@@ -64,36 +64,37 @@ xfs_dir2_trace_enter(
char
*
where
,
char
*
name
,
int
namelen
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
)
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
)
{
__psunsigned_t
n
[
6
];
void
*
n
[
5
];
ASSERT
(
xfs_dir2_trace_buf
);
ASSERT
(
dp
->
i_dir_trace
);
if
(
name
)
memcpy
(
n
,
name
,
min
(
sizeof
(
n
),
namelen
));
memcpy
(
n
,
name
,
min
(
(
int
)
sizeof
(
n
),
namelen
));
else
memset
((
char
*
)
n
,
0
,
sizeof
(
n
));
ktrace_enter
(
xfs_dir2_trace_buf
,
(
void
*
)
(
__psunsigned_t
)
type
,
(
void
*
)
where
,
(
void
*
)
type
,
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
(
__psunsigned_t
)
namelen
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
a7
,
(
void
*
)
namelen
,
(
void
*
)
n
[
0
],
(
void
*
)
n
[
1
],
(
void
*
)
n
[
2
],
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]
,
(
void
*
)
n
[
5
]
);
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]);
ktrace_enter
(
dp
->
i_dir_trace
,
(
void
*
)
(
__psunsigned_t
)
type
,
(
void
*
)
where
,
(
void
*
)
type
,
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
(
__psunsigned_t
)
namelen
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
a7
,
(
void
*
)
namelen
,
(
void
*
)
n
[
0
],
(
void
*
)
n
[
1
],
(
void
*
)
n
[
2
],
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]
,
(
void
*
)
n
[
5
]
);
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]);
}
void
...
...
@@ -103,9 +104,11 @@ xfs_dir2_trace_args(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
0
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
NULL
,
NULL
);
}
void
...
...
@@ -116,10 +119,12 @@ xfs_dir2_trace_args_b(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_B
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
),
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
),
NULL
);
}
void
...
...
@@ -131,11 +136,13 @@ xfs_dir2_trace_args_bb(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_BB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)(
lbp
?
lbp
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)(
dbp
?
dbp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)(
lbp
?
lbp
->
bps
[
0
]
:
NULL
),
(
void
*
)(
dbp
?
dbp
->
bps
[
0
]
:
NULL
));
}
void
...
...
@@ -150,10 +157,10 @@ xfs_dir2_trace_args_bibii(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_BIBII
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)(
bs
?
bs
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)
ss
,
(
__psunsigned_t
)(
bd
?
bd
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)
sd
,
(
__psunsigned_t
)
c
);
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
bs
?
bs
->
bps
[
0
]
:
NULL
),
(
void
*
)
ss
,
(
void
*
)(
bd
?
bd
->
bps
[
0
]
:
NULL
),
(
void
*
)
sd
,
(
void
*
)
c
,
NULL
);
}
void
...
...
@@ -165,10 +172,12 @@ xfs_dir2_trace_args_db(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_DB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
db
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
db
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
}
void
...
...
@@ -179,9 +188,13 @@ xfs_dir2_trace_args_i(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_I
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
i
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)((
unsigned
long
)(
i
>>
32
)),
(
void
*
)((
unsigned
long
)(
i
&
0xFFFFFFFF
)));
}
void
...
...
@@ -192,9 +205,11 @@ xfs_dir2_trace_args_s(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_S
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
s
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
s
,
0
);
}
void
...
...
@@ -206,9 +221,11 @@ xfs_dir2_trace_args_sb(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_SB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
s
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
s
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
}
#endif
/* XFS_DIR2_TRACE */
fs/xfs/xfs_dir2_trace.h
View file @
bfaa1ea4
...
...
@@ -36,20 +36,15 @@
* Tracing for xfs v2 directories.
*/
#if defined(XFS_DIR2_TRACE)
struct
ktrace
;
struct
xfs_dabuf
;
struct
xfs_da_args
;
#ifdef XFS_ALL_TRACE
#define XFS_DIR2_TRACE
#endif
/* XFS_ALL_TRACE */
#if !defined(DEBUG)
#undef XFS_DIR2_TRACE
#endif
/* !DEBUG */
#define XFS_DIR2_GTRACE_SIZE 4096
/* global buffer */
#define XFS_DIR2_KTRACE_SIZE 32
/* per-inode buffer */
extern
struct
ktrace
*
xfs_dir2_trace_buf
;
#define XFS_DIR2_KTRACE_ARGS 1
/* args only */
#define XFS_DIR2_KTRACE_ARGS_B 2
/* args + buffer */
...
...
@@ -60,8 +55,6 @@ struct xfs_da_args;
#define XFS_DIR2_KTRACE_ARGS_SB 7
/* args, int, buffer */
#define XFS_DIR2_KTRACE_ARGS_BIBII 8
/* args, buf/int/buf/int/int */
#ifdef XFS_DIR2_TRACE
void
xfs_dir2_trace_args
(
char
*
where
,
struct
xfs_da_args
*
args
);
void
xfs_dir2_trace_args_b
(
char
*
where
,
struct
xfs_da_args
*
args
,
struct
xfs_dabuf
*
bp
);
...
...
@@ -90,6 +83,4 @@ void xfs_dir2_trace_args_sb(char *where, struct xfs_da_args *args, int s,
#endif
/* XFS_DIR2_TRACE */
extern
struct
ktrace
*
xfs_dir2_trace_buf
;
#endif
/* __XFS_DIR2_TRACE_H__ */
fs/xfs/xfs_dir_sf.h
View file @
bfaa1ea4
...
...
@@ -126,13 +126,7 @@ int xfs_dir_sf_allfit(int count, int totallen);
((uint)sizeof(xfs_dir_sf_entry_t)-1)*(count) + (totallen))
#endif
#ifdef XFS_ALL_TRACE
#define XFS_DIR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_DIR_TRACE
#endif
#if defined(XFS_DIR_TRACE)
/*
* Kernel tracing support for directories.
...
...
@@ -145,6 +139,7 @@ struct xfs_dir_leafblock;
struct
xfs_dir_leaf_entry
;
#define XFS_DIR_TRACE_SIZE 4096
/* size of global trace buffer */
extern
ktrace_t
*
xfs_dir_trace_buf
;
/*
* Trace record types.
...
...
@@ -156,8 +151,6 @@ struct xfs_dir_leaf_entry;
#define XFS_DIR_KTRACE_G_DUE 5
/* dp, uio, leaf entry */
#define XFS_DIR_KTRACE_G_DUC 6
/* dp, uio, cookie */
#if defined(XFS_DIR_TRACE)
void
xfs_dir_trace_g_du
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
);
void
xfs_dir_trace_g_dub
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
,
xfs_dablk_t
bno
);
...
...
@@ -170,12 +163,9 @@ void xfs_dir_trace_g_due(char *where, struct xfs_inode *dp, struct uio *uio,
void
xfs_dir_trace_g_duc
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
,
xfs_off_t
cookie
);
void
xfs_dir_trace_enter
(
int
type
,
char
*
where
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
,
__psunsigned_t
a7
,
__psunsigned_t
a8
,
__psunsigned_t
a9
,
__psunsigned_t
a10
,
__psunsigned_t
a11
);
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
,
void
*
a8
,
void
*
a9
,
void
*
a10
,
void
*
a11
);
#else
#define xfs_dir_trace_g_du(w,d,u)
#define xfs_dir_trace_g_dub(w,d,u,b)
...
...
fs/xfs/xfs_iget.c
View file @
bfaa1ea4
...
...
@@ -506,9 +506,6 @@ xfs_inode_lock_init(
mrlock_init
(
&
ip
->
i_lock
,
MRLOCK_ALLOW_EQUAL_PRI
|
MRLOCK_BARRIER
,
"xfsino"
,
(
long
)
vp
->
v_number
);
mrlock_init
(
&
ip
->
i_iolock
,
MRLOCK_BARRIER
,
"xfsio"
,
vp
->
v_number
);
#ifdef NOTYET
mutex_init
(
&
ip
->
i_range_lock
.
r_spinlock
,
MUTEX_SPIN
,
"xrange"
);
#endif
/* NOTYET */
init_waitqueue_head
(
&
ip
->
i_ipin_wait
);
atomic_set
(
&
ip
->
i_pincount
,
0
);
init_sema
(
&
ip
->
i_flock
,
1
,
"xfsfino"
,
vp
->
v_number
);
...
...
@@ -830,9 +827,7 @@ xfs_ilock(xfs_inode_t *ip,
}
else
if
(
lock_flags
&
XFS_ILOCK_SHARED
)
{
mraccess
(
&
ip
->
i_lock
);
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
1
,
lock_flags
,
(
inst_t
*
)
return_address
);
#endif
xfs_ilock_trace
(
ip
,
1
,
lock_flags
,
(
inst_t
*
)
__return_address
);
}
/*
...
...
@@ -895,9 +890,7 @@ xfs_ilock_nowait(xfs_inode_t *ip,
return
0
;
}
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
2
,
lock_flags
,
(
inst_t
*
)
__return_address
);
#endif
return
1
;
}
...
...
@@ -955,9 +948,7 @@ xfs_iunlock(xfs_inode_t *ip,
(
xfs_log_item_t
*
)(
ip
->
i_itemp
));
}
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
3
,
lock_flags
,
(
inst_t
*
)
__return_address
);
#endif
}
/*
...
...
fs/xfs/xfs_inode.c
View file @
bfaa1ea4
...
...
@@ -908,9 +908,6 @@ xfs_iread(
#ifdef XFS_RW_TRACE
ip
->
i_rwtrace
=
ktrace_alloc
(
XFS_RW_KTRACE_SIZE
,
KM_SLEEP
);
#endif
#ifdef XFS_STRAT_TRACE
ip
->
i_strat_trace
=
ktrace_alloc
(
XFS_STRAT_KTRACE_SIZE
,
KM_SLEEP
);
#endif
#ifdef XFS_ILOCK_TRACE
ip
->
i_lock_trace
=
ktrace_alloc
(
XFS_ILOCK_KTRACE_SIZE
,
KM_SLEEP
);
#endif
...
...
@@ -1144,8 +1141,8 @@ xfs_ialloc(
ip
->
i_d
.
di_onlink
=
0
;
ip
->
i_d
.
di_nlink
=
nlink
;
ASSERT
(
ip
->
i_d
.
di_nlink
==
nlink
);
ip
->
i_d
.
di_uid
=
current
->
fsuid
;
ip
->
i_d
.
di_gid
=
current
->
fsgid
;
ip
->
i_d
.
di_uid
=
current
_fsuid
(
cr
)
;
ip
->
i_d
.
di_gid
=
current
_fsgid
(
cr
)
;
ip
->
i_d
.
di_projid
=
prid
;
memset
(
&
(
ip
->
i_d
.
di_pad
[
0
]),
0
,
sizeof
(
ip
->
i_d
.
di_pad
));
...
...
@@ -1362,16 +1359,16 @@ xfs_itrunc_trace(
ktrace_enter
(
ip
->
i_rwtrace
,
(
void
*
)((
long
)
tag
),
(
void
*
)
ip
,
(
void
*
)((
ip
->
i_d
.
di_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
ip
->
i_d
.
di_size
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
ip
->
i_d
.
di_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
ip
->
i_d
.
di_size
&
0xffffffff
),
(
void
*
)((
long
)
flag
),
(
void
*
)((
new_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
new_size
&
0xffffffff
),
(
void
*
)((
toss_start
>>
32
)
&
0xffffffff
),
(
void
*
)(
toss_start
&
0xffffffff
),
(
void
*
)((
toss_finish
>>
32
)
&
0xffffffff
),
(
void
*
)(
toss_finish
&
0xffffffff
),
(
void
*
)
((
long
)
private
.
p_cpuid
),
(
void
*
)(
unsigned
long
)(
(
new_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
new_size
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
toss_start
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
toss_start
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
toss_finish
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
toss_finish
&
0xffffffff
),
(
void
*
)
current_cpu
(
),
(
void
*
)
0
,
(
void
*
)
0
,
(
void
*
)
0
,
...
...
@@ -2755,17 +2752,8 @@ xfs_idestroy(
}
if
(
ip
->
i_afp
)
xfs_idestroy_fork
(
ip
,
XFS_ATTR_FORK
);
#ifdef NOTYET
if
(
ip
->
i_range_lock
.
r_sleep
!=
NULL
)
{
freesema
(
ip
->
i_range_lock
.
r_sleep
);
kmem_free
(
ip
->
i_range_lock
.
r_sleep
,
sizeof
(
sema_t
));
}
#endif
/* NOTYET */
mrfree
(
&
ip
->
i_lock
);
mrfree
(
&
ip
->
i_iolock
);
#ifdef NOTYET
mutex_destroy
(
&
ip
->
i_range_lock
.
r_spinlock
);
#endif
/* NOTYET */
freesema
(
&
ip
->
i_flock
);
#ifdef XFS_BMAP_TRACE
ktrace_free
(
ip
->
i_xtrace
);
...
...
@@ -2776,9 +2764,6 @@ xfs_idestroy(
#ifdef XFS_RW_TRACE
ktrace_free
(
ip
->
i_rwtrace
);
#endif
#ifdef XFS_STRAT_TRACE
ktrace_free
(
ip
->
i_strat_trace
);
#endif
#ifdef XFS_ILOCK_TRACE
ktrace_free
(
ip
->
i_lock_trace
);
#endif
...
...
@@ -3707,7 +3692,7 @@ xfs_iaccess(
if
((
error
=
_ACL_XFS_IACCESS
(
ip
,
mode
,
cr
))
!=
-
1
)
return
error
?
XFS_ERROR
(
error
)
:
0
;
if
(
current
->
fsuid
!=
ip
->
i_d
.
di_uid
)
{
if
(
current
_fsuid
(
cr
)
!=
ip
->
i_d
.
di_uid
)
{
mode
>>=
3
;
if
(
!
in_group_p
((
gid_t
)
ip
->
i_d
.
di_gid
))
mode
>>=
3
;
...
...
@@ -3859,17 +3844,18 @@ xfs_ichgtime(xfs_inode_t *ip,
}
#ifdef XFS_ILOCK_TRACE
ktrace_t
*
xfs_ilock_trace_buf
;
void
xfs_ilock_trace
(
xfs_inode_t
*
ip
,
int
lock
,
unsigned
int
lockflags
,
inst_t
*
ra
)
{
ktrace_enter
(
ip
->
i_lock_trace
,
(
void
*
)
ip
,
(
void
*
)(
__psint_t
)
lock
,
/* 1 = LOCK, 3=UNLOCK, etc */
(
void
*
)
(
__psint_t
)
lockflags
,
/* XFS_ILOCK_EXCL etc */
(
void
*
)
ra
,
/* caller of ilock */
(
void
*
)
(
__psint_t
)
cpuid
(),
(
void
*
)
(
__psint_t
)
current_pid
(),
(
void
*
)
lock
,
/* 1 = LOCK, 3=UNLOCK, etc */
(
void
*
)
lockflags
,
/* XFS_ILOCK_EXCL etc */
(
void
*
)
ra
,
/* caller of ilock */
(
void
*
)
current_cpu
(),
(
void
*
)
current_pid
(),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
);
}
#endif
/* ILOCK_TRACE */
#endif
fs/xfs/xfs_inode.h
View file @
bfaa1ea4
...
...
@@ -99,6 +99,13 @@ struct xfs_mount;
struct
xfs_trans
;
struct
xfs_dquot
;
#if defined(XFS_ILOCK_TRACE)
#define XFS_ILOCK_KTRACE_SIZE 32
extern
ktrace_t
*
xfs_ilock_trace_buf
;
extern
void
xfs_ilock_trace
(
struct
xfs_inode
*
,
int
,
unsigned
int
,
inst_t
*
);
#else
#define xfs_ilock_trace(i,n,f,ra)
#endif
/*
* This structure is used to communicate which extents of a file
...
...
@@ -280,15 +287,22 @@ typedef struct xfs_inode {
struct
xfs_inode
*
i_cnext
;
/* cluster hash link forward */
struct
xfs_inode
*
i_cprev
;
/* cluster hash link backward */
#ifdef DEBUG
/* Trace buffers per inode. */
#ifdef XFS_BMAP_TRACE
struct
ktrace
*
i_xtrace
;
/* inode extent list trace */
#endif
#ifdef XFS_BMBT_TRACE
struct
ktrace
*
i_btrace
;
/* inode bmap btree trace */
#endif
#ifdef XFS_RW_TRACE
struct
ktrace
*
i_rwtrace
;
/* inode read/write trace */
struct
ktrace
*
i_strat_trace
;
/* inode strat_write trace */
#endif
#ifdef XFS_ILOCK_TRACE
struct
ktrace
*
i_lock_trace
;
/* inode lock/unlock trace */
#endif
#ifdef XFS_DIR2_TRACE
struct
ktrace
*
i_dir_trace
;
/* inode directory trace */
#endif
/* DEBUG */
#endif
}
xfs_inode_t
;
#endif
/* __KERNEL__ */
...
...
@@ -536,12 +550,6 @@ extern struct kmem_zone *xfs_inode_zone;
extern
struct
kmem_zone
*
xfs_ili_zone
;
extern
struct
vnodeops
xfs_vnodeops
;
#ifdef XFS_ILOCK_TRACE
#define XFS_ILOCK_KTRACE_SIZE 32
void
xfs_ilock_trace
(
xfs_inode_t
*
ip
,
int
lock
,
unsigned
int
lockflags
,
inst_t
*
ra
);
#endif
#endif
/* __KERNEL__ */
#endif
/* __XFS_INODE_H__ */
fs/xfs/xfs_vfsops.c
View file @
bfaa1ea4
...
...
@@ -74,24 +74,11 @@ STATIC int xfs_sync(bhv_desc_t *, int, cred_t *);
int
xfs_init
(
void
)
{
extern
kmem_zone_t
*
xfs_da_state_zone
;
extern
kmem_zone_t
*
xfs_bmap_free_item_zone
;
extern
kmem_zone_t
*
xfs_btree_cur_zone
;
extern
kmem_zone_t
*
xfs_inode_zone
;
extern
kmem_zone_t
*
xfs_chashlist_zone
;
extern
kmem_zone_t
*
xfs_trans_zone
;
extern
kmem_zone_t
*
xfs_buf_item_zone
;
extern
kmem_zone_t
*
xfs_efd_zone
;
extern
kmem_zone_t
*
xfs_efi_zone
;
extern
kmem_zone_t
*
xfs_dabuf_zone
;
#ifdef DEBUG_NOT
extern
ktrace_t
*
xfs_alloc_trace_buf
;
extern
ktrace_t
*
xfs_bmap_trace_buf
;
extern
ktrace_t
*
xfs_bmbt_trace_buf
;
extern
ktrace_t
*
xfs_dir_trace_buf
;
extern
ktrace_t
*
xfs_attr_trace_buf
;
extern
ktrace_t
*
xfs_dir2_trace_buf
;
#endif
/* DEBUG */
#ifdef XFS_DABUF_DEBUG
extern
lock_t
xfs_dabuf_global_lock
;
spinlock_init
(
&
xfs_dabuf_global_lock
,
"xfsda"
);
...
...
fs/xfs/xfs_vnodeops.c
View file @
bfaa1ea4
...
...
@@ -430,7 +430,7 @@ xfs_setattr(
}
/* boolean: are we the file owner? */
file_owner
=
(
current
->
fsuid
==
ip
->
i_d
.
di_uid
);
file_owner
=
(
current
_fsuid
(
credp
)
==
ip
->
i_d
.
di_uid
);
/*
* Change various properties of a file.
...
...
@@ -2000,7 +2000,8 @@ xfs_create(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
@@ -2895,7 +2896,8 @@ xfs_mkdir(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
@@ -3452,7 +3454,8 @@ xfs_symlink(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
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