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
07f08be5
Commit
07f08be5
authored
Mar 26, 2003
by
Nathan Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[XFS] whitespace and code formatting changes
parent
a3510967
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
191 additions
and
129 deletions
+191
-129
fs/xfs/linux/xfs_super.c
fs/xfs/linux/xfs_super.c
+18
-61
fs/xfs/linux/xfs_super.h
fs/xfs/linux/xfs_super.h
+0
-4
fs/xfs/linux/xfs_vfs.c
fs/xfs/linux/xfs_vfs.c
+132
-30
fs/xfs/linux/xfs_vfs.h
fs/xfs/linux/xfs_vfs.h
+4
-0
fs/xfs/linux/xfs_vnode.c
fs/xfs/linux/xfs_vnode.c
+36
-34
fs/xfs/xfs_mount.c
fs/xfs/xfs_mount.c
+1
-0
No files found.
fs/xfs/linux/xfs_super.c
View file @
07f08be5
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
STATIC
struct
quotactl_ops
linvfs_qops
;
STATIC
struct
quotactl_ops
linvfs_qops
;
STATIC
struct
super_operations
linvfs_sops
;
STATIC
struct
super_operations
linvfs_sops
;
STATIC
struct
export_operations
linvfs_export_ops
;
STATIC
struct
export_operations
linvfs_export_ops
;
STATIC
kmem_cache_t
*
linvfs_inode_cachep
;
#define MNTOPT_LOGBUFS "logbufs"
/* number of XFS log buffers */
#define MNTOPT_LOGBUFS "logbufs"
/* number of XFS log buffers */
#define MNTOPT_LOGBSIZE "logbsize"
/* size of XFS log buffers */
#define MNTOPT_LOGBSIZE "logbsize"
/* size of XFS log buffers */
...
@@ -320,11 +321,11 @@ xfs_set_inodeops(
...
@@ -320,11 +321,11 @@ xfs_set_inodeops(
STATIC
__inline__
void
STATIC
__inline__
void
xfs_revalidate_inode
(
xfs_revalidate_inode
(
xfs_mount_t
*
mp
,
xfs_mount_t
*
mp
,
vnode_t
*
vp
,
vnode_t
*
vp
,
xfs_inode_t
*
ip
)
xfs_inode_t
*
ip
)
{
{
struct
inode
*
inode
=
LINVFS_GET_IP
(
vp
);
struct
inode
*
inode
=
LINVFS_GET_IP
(
vp
);
inode
->
i_mode
=
(
ip
->
i_d
.
di_mode
&
MODEMASK
)
|
VTTOIF
(
vp
->
v_type
);
inode
->
i_mode
=
(
ip
->
i_d
.
di_mode
&
MODEMASK
)
|
VTTOIF
(
vp
->
v_type
);
inode
->
i_nlink
=
ip
->
i_d
.
di_nlink
;
inode
->
i_nlink
=
ip
->
i_d
.
di_nlink
;
...
@@ -353,21 +354,22 @@ xfs_revalidate_inode(
...
@@ -353,21 +354,22 @@ xfs_revalidate_inode(
void
void
xfs_initialize_vnode
(
xfs_initialize_vnode
(
bhv_desc_t
*
bdp
,
bhv_desc_t
*
bdp
,
vnode_t
*
vp
,
vnode_t
*
vp
,
bhv_desc_t
*
inode_bhv
,
bhv_desc_t
*
inode_bhv
,
int
unlock
)
int
unlock
)
{
{
xfs_inode_t
*
ip
=
XFS_BHVTOI
(
inode_bhv
);
xfs_inode_t
*
ip
=
XFS_BHVTOI
(
inode_bhv
);
struct
inode
*
inode
=
LINVFS_GET_IP
(
vp
);
struct
inode
*
inode
=
LINVFS_GET_IP
(
vp
);
if
(
inode_bhv
->
bd_vobj
==
NULL
)
{
if
(
!
inode_bhv
->
bd_vobj
)
{
vp
->
v_vfsp
=
bhvtovfs
(
bdp
);
vp
->
v_vfsp
=
bhvtovfs
(
bdp
);
bhv_desc_init
(
inode_bhv
,
ip
,
vp
,
&
xfs_vnodeops
);
bhv_desc_init
(
inode_bhv
,
ip
,
vp
,
&
xfs_vnodeops
);
bhv_insert
(
VN_BHV_HEAD
(
vp
),
inode_bhv
);
bhv_insert
(
VN_BHV_HEAD
(
vp
),
inode_bhv
);
}
}
vp
->
v_type
=
IFTOVT
(
ip
->
i_d
.
di_mode
);
vp
->
v_type
=
IFTOVT
(
ip
->
i_d
.
di_mode
);
/* Have we been called during the new inode create process,
/* Have we been called during the new inode create process,
* in which case we are too early to fill in the Linux inode.
* in which case we are too early to fill in the Linux inode.
*/
*/
...
@@ -466,8 +468,6 @@ xfs_alloc_buftarg(
...
@@ -466,8 +468,6 @@ xfs_alloc_buftarg(
return
btp
;
return
btp
;
}
}
STATIC
kmem_cache_t
*
linvfs_inode_cachep
;
STATIC
__inline__
unsigned
int
gfp_mask
(
void
)
STATIC
__inline__
unsigned
int
gfp_mask
(
void
)
{
{
/* If we're not in a transaction, FS activity is ok */
/* If we're not in a transaction, FS activity is ok */
...
@@ -475,7 +475,6 @@ STATIC __inline__ unsigned int gfp_mask(void)
...
@@ -475,7 +475,6 @@ STATIC __inline__ unsigned int gfp_mask(void)
return
GFP_KERNEL
;
return
GFP_KERNEL
;
}
}
STATIC
struct
inode
*
STATIC
struct
inode
*
linvfs_alloc_inode
(
linvfs_alloc_inode
(
struct
super_block
*
sb
)
struct
super_block
*
sb
)
...
@@ -937,49 +936,6 @@ STATIC struct file_system_type xfs_fs_type = {
...
@@ -937,49 +936,6 @@ STATIC struct file_system_type xfs_fs_type = {
};
};
void
bhv_remove_vfsops
(
struct
vfs
*
vfsp
,
int
pos
)
{
struct
bhv_desc
*
bhv
;
bhv
=
bhv_lookup_range
(
&
vfsp
->
vfs_bh
,
pos
,
pos
);
if
(
!
bhv
)
return
;
bhv_remove
(
&
vfsp
->
vfs_bh
,
bhv
);
kmem_free
(
bhv
,
sizeof
(
*
bhv
));
}
void
bhv_remove_all_vfsops
(
struct
vfs
*
vfsp
,
int
freebase
)
{
struct
xfs_mount
*
mp
;
bhv_remove_vfsops
(
vfsp
,
VFS_POSITION_QM
);
bhv_remove_vfsops
(
vfsp
,
VFS_POSITION_DM
);
if
(
!
freebase
)
return
;
mp
=
XFS_BHVTOM
(
bhv_lookup
(
VFS_BHVHEAD
(
vfsp
),
&
xfs_vfsops
));
VFS_REMOVEBHV
(
vfsp
,
&
mp
->
m_bhv
);
xfs_mount_free
(
mp
,
0
);
}
void
bhv_insert_all_vfsops
(
struct
vfs
*
vfsp
)
{
struct
xfs_mount
*
mp
;
mp
=
xfs_mount_init
();
vfs_insertbhv
(
vfsp
,
&
mp
->
m_bhv
,
&
xfs_vfsops
,
mp
);
vfs_insertdmapi
(
vfsp
);
vfs_insertquota
(
vfsp
);
}
STATIC
int
__init
STATIC
int
__init
init_xfs_fs
(
void
)
init_xfs_fs
(
void
)
{
{
...
@@ -1000,6 +956,10 @@ init_xfs_fs( void )
...
@@ -1000,6 +956,10 @@ init_xfs_fs( void )
error
=
pagebuf_init
();
error
=
pagebuf_init
();
if
(
error
<
0
)
if
(
error
<
0
)
goto
undo_pagebuf
;
goto
undo_pagebuf
;
vn_init
();
xfs_init
();
error
=
vfs_initdmapi
();
error
=
vfs_initdmapi
();
if
(
error
<
0
)
if
(
error
<
0
)
goto
undo_dmapi
;
goto
undo_dmapi
;
...
@@ -1007,9 +967,6 @@ init_xfs_fs( void )
...
@@ -1007,9 +967,6 @@ init_xfs_fs( void )
if
(
error
<
0
)
if
(
error
<
0
)
goto
undo_quota
;
goto
undo_quota
;
vn_init
();
xfs_init
();
error
=
register_filesystem
(
&
xfs_fs_type
);
error
=
register_filesystem
(
&
xfs_fs_type
);
if
(
error
)
if
(
error
)
goto
undo_fs
;
goto
undo_fs
;
...
@@ -1030,8 +987,8 @@ init_xfs_fs( void )
...
@@ -1030,8 +987,8 @@ init_xfs_fs( void )
STATIC
void
__exit
STATIC
void
__exit
exit_xfs_fs
(
void
)
exit_xfs_fs
(
void
)
{
{
xfs_cleanup
();
unregister_filesystem
(
&
xfs_fs_type
);
unregister_filesystem
(
&
xfs_fs_type
);
xfs_cleanup
();
vfs_exitquota
();
vfs_exitquota
();
vfs_exitdmapi
();
vfs_exitdmapi
();
pagebuf_terminate
();
pagebuf_terminate
();
...
...
fs/xfs/linux/xfs_super.h
View file @
07f08be5
...
@@ -111,8 +111,4 @@ extern void xfs_free_buftarg(struct pb_target *);
...
@@ -111,8 +111,4 @@ extern void xfs_free_buftarg(struct pb_target *);
extern
void
xfs_setsize_buftarg
(
struct
pb_target
*
,
unsigned
int
,
unsigned
int
);
extern
void
xfs_setsize_buftarg
(
struct
pb_target
*
,
unsigned
int
,
unsigned
int
);
extern
unsigned
int
xfs_getsize_buftarg
(
struct
pb_target
*
);
extern
unsigned
int
xfs_getsize_buftarg
(
struct
pb_target
*
);
extern
void
bhv_insert_all_vfsops
(
struct
vfs
*
);
extern
void
bhv_remove_all_vfsops
(
struct
vfs
*
,
int
);
extern
void
bhv_remove_vfsops
(
struct
vfs
*
,
int
);
#endif
/* __XFS_SUPER_H__ */
#endif
/* __XFS_SUPER_H__ */
fs/xfs/linux/xfs_vfs.c
View file @
07f08be5
...
@@ -33,9 +33,13 @@
...
@@ -33,9 +33,13 @@
#include <xfs.h>
#include <xfs.h>
int
int
vfs_mount
(
bhv_desc_t
*
bdp
,
struct
xfs_mount_args
*
args
,
struct
cred
*
cr
)
vfs_mount
(
struct
bhv_desc
*
bdp
,
struct
xfs_mount_args
*
args
,
struct
cred
*
cr
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_mount
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_mount
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -43,9 +47,14 @@ vfs_mount(bhv_desc_t *bdp, struct xfs_mount_args *args, struct cred *cr)
...
@@ -43,9 +47,14 @@ vfs_mount(bhv_desc_t *bdp, struct xfs_mount_args *args, struct cred *cr)
}
}
int
int
vfs_parseargs
(
bhv_desc_t
*
bdp
,
char
*
s
,
struct
xfs_mount_args
*
args
,
int
f
)
vfs_parseargs
(
struct
bhv_desc
*
bdp
,
char
*
s
,
struct
xfs_mount_args
*
args
,
int
f
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_parseargs
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_parseargs
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -53,9 +62,12 @@ vfs_parseargs(bhv_desc_t *bdp, char *s, struct xfs_mount_args *args, int f)
...
@@ -53,9 +62,12 @@ vfs_parseargs(bhv_desc_t *bdp, char *s, struct xfs_mount_args *args, int f)
}
}
int
int
vfs_showargs
(
bhv_desc_t
*
bdp
,
struct
seq_file
*
m
)
vfs_showargs
(
struct
bhv_desc
*
bdp
,
struct
seq_file
*
m
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_showargs
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_showargs
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -63,9 +75,13 @@ vfs_showargs(bhv_desc_t *bdp, struct seq_file *m)
...
@@ -63,9 +75,13 @@ vfs_showargs(bhv_desc_t *bdp, struct seq_file *m)
}
}
int
int
vfs_unmount
(
bhv_desc_t
*
bdp
,
int
fl
,
struct
cred
*
cr
)
vfs_unmount
(
struct
bhv_desc
*
bdp
,
int
fl
,
struct
cred
*
cr
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_unmount
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_unmount
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -73,9 +89,12 @@ vfs_unmount(bhv_desc_t *bdp, int fl, struct cred *cr)
...
@@ -73,9 +89,12 @@ vfs_unmount(bhv_desc_t *bdp, int fl, struct cred *cr)
}
}
int
int
vfs_root
(
bhv_desc_t
*
bdp
,
struct
vnode
**
vpp
)
vfs_root
(
struct
bhv_desc
*
bdp
,
struct
vnode
**
vpp
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_root
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_root
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -83,9 +102,13 @@ vfs_root(bhv_desc_t *bdp, struct vnode **vpp)
...
@@ -83,9 +102,13 @@ vfs_root(bhv_desc_t *bdp, struct vnode **vpp)
}
}
int
int
vfs_statvfs
(
bhv_desc_t
*
bdp
,
struct
statfs
*
sp
,
struct
vnode
*
vp
)
vfs_statvfs
(
struct
bhv_desc
*
bdp
,
struct
statfs
*
sp
,
struct
vnode
*
vp
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_statvfs
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_statvfs
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -93,9 +116,13 @@ vfs_statvfs(bhv_desc_t *bdp, struct statfs *sp, struct vnode *vp)
...
@@ -93,9 +116,13 @@ vfs_statvfs(bhv_desc_t *bdp, struct statfs *sp, struct vnode *vp)
}
}
int
int
vfs_sync
(
bhv_desc_t
*
bdp
,
int
fl
,
struct
cred
*
cr
)
vfs_sync
(
struct
bhv_desc
*
bdp
,
int
fl
,
struct
cred
*
cr
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_sync
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_sync
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -103,9 +130,13 @@ vfs_sync(bhv_desc_t *bdp, int fl, struct cred *cr)
...
@@ -103,9 +130,13 @@ vfs_sync(bhv_desc_t *bdp, int fl, struct cred *cr)
}
}
int
int
vfs_vget
(
bhv_desc_t
*
bdp
,
struct
vnode
**
vpp
,
struct
fid
*
fidp
)
vfs_vget
(
struct
bhv_desc
*
bdp
,
struct
vnode
**
vpp
,
struct
fid
*
fidp
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_vget
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_vget
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -113,9 +144,12 @@ vfs_vget(bhv_desc_t *bdp, struct vnode **vpp, struct fid *fidp)
...
@@ -113,9 +144,12 @@ vfs_vget(bhv_desc_t *bdp, struct vnode **vpp, struct fid *fidp)
}
}
int
int
vfs_dmapiops
(
bhv_desc_t
*
bdp
,
caddr_t
addr
)
vfs_dmapiops
(
struct
bhv_desc
*
bdp
,
caddr_t
addr
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_dmapiops
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_dmapiops
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -123,9 +157,14 @@ vfs_dmapiops(bhv_desc_t *bdp, caddr_t addr)
...
@@ -123,9 +157,14 @@ vfs_dmapiops(bhv_desc_t *bdp, caddr_t addr)
}
}
int
int
vfs_quotactl
(
bhv_desc_t
*
bdp
,
int
cmd
,
int
id
,
caddr_t
addr
)
vfs_quotactl
(
struct
bhv_desc
*
bdp
,
int
cmd
,
int
id
,
caddr_t
addr
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_quotactl
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_quotactl
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -133,9 +172,14 @@ vfs_quotactl(bhv_desc_t *bdp, int cmd, int id, caddr_t addr)
...
@@ -133,9 +172,14 @@ vfs_quotactl(bhv_desc_t *bdp, int cmd, int id, caddr_t addr)
}
}
void
void
vfs_init_vnode
(
bhv_desc_t
*
bdp
,
struct
vnode
*
vp
,
bhv_desc_t
*
bp
,
int
unlock
)
vfs_init_vnode
(
struct
bhv_desc
*
bdp
,
struct
vnode
*
vp
,
struct
bhv_desc
*
bp
,
int
unlock
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_init_vnode
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_init_vnode
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -143,9 +187,14 @@ vfs_init_vnode(bhv_desc_t *bdp, struct vnode *vp, bhv_desc_t *bp, int unlock)
...
@@ -143,9 +187,14 @@ vfs_init_vnode(bhv_desc_t *bdp, struct vnode *vp, bhv_desc_t *bp, int unlock)
}
}
void
void
vfs_force_shutdown
(
bhv_desc_t
*
bdp
,
int
fl
,
char
*
file
,
int
line
)
vfs_force_shutdown
(
struct
bhv_desc
*
bdp
,
int
fl
,
char
*
file
,
int
line
)
{
{
bhv_desc_t
*
next
=
bdp
;
struct
bhv_desc
*
next
=
bdp
;
ASSERT
(
next
);
ASSERT
(
next
);
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_force_shutdown
)
while
(
!
(
bhvtovfsops
(
next
))
->
vfs_force_shutdown
)
next
=
BHV_NEXT
(
next
);
next
=
BHV_NEXT
(
next
);
...
@@ -153,31 +202,84 @@ vfs_force_shutdown(bhv_desc_t *bdp, int fl, char *file, int line)
...
@@ -153,31 +202,84 @@ vfs_force_shutdown(bhv_desc_t *bdp, int fl, char *file, int line)
}
}
vfs_t
*
vfs_t
*
vfs_allocate
(
void
)
vfs_allocate
(
void
)
{
{
vfs_t
*
vfsp
=
kmem_zalloc
(
sizeof
(
vfs_t
),
KM_SLEEP
);
struct
vfs
*
vfsp
;
vfsp
=
kmem_zalloc
(
sizeof
(
vfs_t
),
KM_SLEEP
);
bhv_head_init
(
VFS_BHVHEAD
(
vfsp
),
"vfs"
);
bhv_head_init
(
VFS_BHVHEAD
(
vfsp
),
"vfs"
);
return
vfsp
;
return
vfsp
;
}
}
void
void
vfs_deallocate
(
vfs_t
*
vfsp
)
vfs_deallocate
(
struct
vfs
*
vfsp
)
{
{
bhv_head_destroy
(
VFS_BHVHEAD
(
vfsp
));
bhv_head_destroy
(
VFS_BHVHEAD
(
vfsp
));
kmem_free
(
vfsp
,
sizeof
(
vfs_t
));
kmem_free
(
vfsp
,
sizeof
(
vfs_t
));
}
}
void
void
vfs_insertops
(
vfs_t
*
vfsp
,
vfsops_t
*
vfsops
)
vfs_insertops
(
struct
vfs
*
vfsp
,
struct
vfsops
*
vfsops
)
{
{
bhv_desc_t
*
bdp
=
kmem_alloc
(
sizeof
(
bhv_desc_t
),
KM_SLEEP
);
struct
bhv_desc
*
bdp
;
bdp
=
kmem_alloc
(
sizeof
(
struct
bhv_desc
),
KM_SLEEP
);
bhv_desc_init
(
bdp
,
NULL
,
vfsp
,
vfsops
);
bhv_desc_init
(
bdp
,
NULL
,
vfsp
,
vfsops
);
bhv_insert
(
&
vfsp
->
vfs_bh
,
bdp
);
bhv_insert
(
&
vfsp
->
vfs_bh
,
bdp
);
}
}
void
void
vfs_insertbhv
(
vfs_t
*
vfsp
,
bhv_desc_t
*
bdp
,
vfsops_t
*
vfsops
,
void
*
mount
)
vfs_insertbhv
(
struct
vfs
*
vfsp
,
struct
bhv_desc
*
bdp
,
struct
vfsops
*
vfsops
,
void
*
mount
)
{
{
bhv_desc_init
(
bdp
,
mount
,
vfsp
,
vfsops
);
bhv_desc_init
(
bdp
,
mount
,
vfsp
,
vfsops
);
bhv_insert_initial
(
&
vfsp
->
vfs_bh
,
bdp
);
bhv_insert_initial
(
&
vfsp
->
vfs_bh
,
bdp
);
}
}
void
bhv_remove_vfsops
(
struct
vfs
*
vfsp
,
int
pos
)
{
struct
bhv_desc
*
bhv
;
bhv
=
bhv_lookup_range
(
&
vfsp
->
vfs_bh
,
pos
,
pos
);
if
(
!
bhv
)
return
;
bhv_remove
(
&
vfsp
->
vfs_bh
,
bhv
);
kmem_free
(
bhv
,
sizeof
(
*
bhv
));
}
void
bhv_remove_all_vfsops
(
struct
vfs
*
vfsp
,
int
freebase
)
{
struct
xfs_mount
*
mp
;
bhv_remove_vfsops
(
vfsp
,
VFS_POSITION_QM
);
bhv_remove_vfsops
(
vfsp
,
VFS_POSITION_DM
);
if
(
!
freebase
)
return
;
mp
=
XFS_BHVTOM
(
bhv_lookup
(
VFS_BHVHEAD
(
vfsp
),
&
xfs_vfsops
));
VFS_REMOVEBHV
(
vfsp
,
&
mp
->
m_bhv
);
xfs_mount_free
(
mp
,
0
);
}
void
bhv_insert_all_vfsops
(
struct
vfs
*
vfsp
)
{
struct
xfs_mount
*
mp
;
mp
=
xfs_mount_init
();
vfs_insertbhv
(
vfsp
,
&
mp
->
m_bhv
,
&
xfs_vfsops
,
mp
);
vfs_insertdmapi
(
vfsp
);
vfs_insertquota
(
vfsp
);
}
fs/xfs/linux/xfs_vfs.h
View file @
07f08be5
...
@@ -170,4 +170,8 @@ extern void vfs_deallocate(vfs_t *);
...
@@ -170,4 +170,8 @@ extern void vfs_deallocate(vfs_t *);
extern
void
vfs_insertops
(
vfs_t
*
,
vfsops_t
*
);
extern
void
vfs_insertops
(
vfs_t
*
,
vfsops_t
*
);
extern
void
vfs_insertbhv
(
vfs_t
*
,
bhv_desc_t
*
,
vfsops_t
*
,
void
*
);
extern
void
vfs_insertbhv
(
vfs_t
*
,
bhv_desc_t
*
,
vfsops_t
*
,
void
*
);
extern
void
bhv_insert_all_vfsops
(
struct
vfs
*
);
extern
void
bhv_remove_all_vfsops
(
struct
vfs
*
,
int
);
extern
void
bhv_remove_vfsops
(
struct
vfs
*
,
int
);
#endif
/* __XFS_VFS_H__ */
#endif
/* __XFS_VFS_H__ */
fs/xfs/linux/xfs_vnode.c
View file @
07f08be5
/*
/*
* Copyright (c) 2000-200
2
Silicon Graphics, Inc. All Rights Reserved.
* Copyright (c) 2000-200
3
Silicon Graphics, Inc. All Rights Reserved.
*
*
* This program is free software; you can redistribute it and/or modify it
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* under the terms of version 2 of the GNU General Public License as
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
*/
*/
#include <xfs.h>
#include <xfs.h>
#include <linux/pagemap.h>
uint64_t
vn_generation
;
/* vnode generation number */
uint64_t
vn_generation
;
/* vnode generation number */
...
@@ -73,19 +72,19 @@ vn_init(void)
...
@@ -73,19 +72,19 @@ vn_init(void)
* Clean a vnode of filesystem-specific data and prepare it for reuse.
* Clean a vnode of filesystem-specific data and prepare it for reuse.
*/
*/
STATIC
int
STATIC
int
vn_reclaim
(
struct
vnode
*
vp
)
vn_reclaim
(
struct
vnode
*
vp
)
{
{
int
error
;
int
error
;
XFS_STATS_INC
(
xfsstats
.
vn_reclaim
);
XFS_STATS_INC
(
xfsstats
.
vn_reclaim
);
vn_trace_entry
(
vp
,
"vn_reclaim"
,
(
inst_t
*
)
__return_address
);
vn_trace_entry
(
vp
,
"vn_reclaim"
,
(
inst_t
*
)
__return_address
);
/*
/*
* Only make the VOP_RECLAIM call if there are behaviors
* Only make the VOP_RECLAIM call if there are behaviors
* to call.
* to call.
*/
*/
if
(
vp
->
v_fbhv
!=
NULL
)
{
if
(
vp
->
v_fbhv
)
{
VOP_RECLAIM
(
vp
,
error
);
VOP_RECLAIM
(
vp
,
error
);
if
(
error
)
if
(
error
)
return
-
error
;
return
-
error
;
...
@@ -108,18 +107,19 @@ vn_reclaim(struct vnode *vp)
...
@@ -108,18 +107,19 @@ vn_reclaim(struct vnode *vp)
}
}
STATIC
void
STATIC
void
vn_wakeup
(
struct
vnode
*
vp
)
vn_wakeup
(
struct
vnode
*
vp
)
{
{
VN_LOCK
(
vp
);
VN_LOCK
(
vp
);
if
(
vp
->
v_flag
&
VWAIT
)
{
if
(
vp
->
v_flag
&
VWAIT
)
sv_broadcast
(
vptosync
(
vp
));
sv_broadcast
(
vptosync
(
vp
));
}
vp
->
v_flag
&=
~
(
VRECLM
|
VWAIT
|
VMODIFIED
);
vp
->
v_flag
&=
~
(
VRECLM
|
VWAIT
|
VMODIFIED
);
VN_UNLOCK
(
vp
,
0
);
VN_UNLOCK
(
vp
,
0
);
}
}
int
int
vn_wait
(
struct
vnode
*
vp
)
vn_wait
(
struct
vnode
*
vp
)
{
{
VN_LOCK
(
vp
);
VN_LOCK
(
vp
);
if
(
vp
->
v_flag
&
(
VINACT
|
VRECLM
))
{
if
(
vp
->
v_flag
&
(
VINACT
|
VRECLM
))
{
...
@@ -132,7 +132,8 @@ vn_wait(struct vnode *vp)
...
@@ -132,7 +132,8 @@ vn_wait(struct vnode *vp)
}
}
struct
vnode
*
struct
vnode
*
vn_initialize
(
struct
inode
*
inode
)
vn_initialize
(
struct
inode
*
inode
)
{
{
struct
vnode
*
vp
=
LINVFS_GET_VP
(
inode
);
struct
vnode
*
vp
=
LINVFS_GET_VP
(
inode
);
...
@@ -165,7 +166,9 @@ vn_initialize(struct inode *inode)
...
@@ -165,7 +166,9 @@ vn_initialize(struct inode *inode)
* Get a reference on a vnode.
* Get a reference on a vnode.
*/
*/
vnode_t
*
vnode_t
*
vn_get
(
struct
vnode
*
vp
,
vmap_t
*
vmap
)
vn_get
(
struct
vnode
*
vp
,
vmap_t
*
vmap
)
{
{
struct
inode
*
inode
;
struct
inode
*
inode
;
...
@@ -175,7 +178,7 @@ vn_get(struct vnode *vp, vmap_t *vmap)
...
@@ -175,7 +178,7 @@ vn_get(struct vnode *vp, vmap_t *vmap)
return
NULL
;
return
NULL
;
inode
=
ilookup
(
vmap
->
v_vfsp
->
vfs_super
,
vmap
->
v_ino
);
inode
=
ilookup
(
vmap
->
v_vfsp
->
vfs_super
,
vmap
->
v_ino
);
if
(
inode
==
NULL
)
/* Inode not present */
if
(
!
inode
)
/* Inode not present */
return
NULL
;
return
NULL
;
vn_trace_exit
(
vp
,
"vn_get"
,
(
inst_t
*
)
__return_address
);
vn_trace_exit
(
vp
,
"vn_get"
,
(
inst_t
*
)
__return_address
);
...
@@ -187,11 +190,12 @@ vn_get(struct vnode *vp, vmap_t *vmap)
...
@@ -187,11 +190,12 @@ vn_get(struct vnode *vp, vmap_t *vmap)
* Revalidate the Linux inode from the vnode.
* Revalidate the Linux inode from the vnode.
*/
*/
int
int
vn_revalidate
(
struct
vnode
*
vp
)
vn_revalidate
(
struct
vnode
*
vp
)
{
{
int
error
;
struct
inode
*
inode
;
struct
inode
*
inode
;
vattr_t
va
;
vattr_t
va
;
int
error
;
vn_trace_entry
(
vp
,
"vn_revalidate"
,
(
inst_t
*
)
__return_address
);
vn_trace_entry
(
vp
,
"vn_revalidate"
,
(
inst_t
*
)
__return_address
);
ASSERT
(
vp
->
v_fbhv
!=
NULL
);
ASSERT
(
vp
->
v_fbhv
!=
NULL
);
...
@@ -224,7 +228,9 @@ vn_revalidate(struct vnode *vp)
...
@@ -224,7 +228,9 @@ vn_revalidate(struct vnode *vp)
* get a handle (via vn_get) on the vnode (usually done via a mount/vfs lock).
* get a handle (via vn_get) on the vnode (usually done via a mount/vfs lock).
*/
*/
void
void
vn_purge
(
struct
vnode
*
vp
,
vmap_t
*
vmap
)
vn_purge
(
struct
vnode
*
vp
,
vmap_t
*
vmap
)
{
{
vn_trace_entry
(
vp
,
"vn_purge"
,
(
inst_t
*
)
__return_address
);
vn_trace_entry
(
vp
,
"vn_purge"
,
(
inst_t
*
)
__return_address
);
...
@@ -284,9 +290,10 @@ vn_purge(struct vnode *vp, vmap_t *vmap)
...
@@ -284,9 +290,10 @@ vn_purge(struct vnode *vp, vmap_t *vmap)
* Add a reference to a referenced vnode.
* Add a reference to a referenced vnode.
*/
*/
struct
vnode
*
struct
vnode
*
vn_hold
(
struct
vnode
*
vp
)
vn_hold
(
struct
vnode
*
vp
)
{
{
struct
inode
*
inode
;
struct
inode
*
inode
;
XFS_STATS_INC
(
xfsstats
.
vn_hold
);
XFS_STATS_INC
(
xfsstats
.
vn_hold
);
...
@@ -302,10 +309,11 @@ vn_hold(struct vnode *vp)
...
@@ -302,10 +309,11 @@ vn_hold(struct vnode *vp)
* Call VOP_INACTIVE on last reference.
* Call VOP_INACTIVE on last reference.
*/
*/
void
void
vn_rele
(
struct
vnode
*
vp
)
vn_rele
(
struct
vnode
*
vp
)
{
{
int
vcnt
;
int
vcnt
;
int
cache
;
int
cache
;
XFS_STATS_INC
(
xfsstats
.
vn_rele
);
XFS_STATS_INC
(
xfsstats
.
vn_rele
);
...
@@ -319,7 +327,7 @@ vn_rele(struct vnode *vp)
...
@@ -319,7 +327,7 @@ vn_rele(struct vnode *vp)
* that i_count won't be decremented after we
* that i_count won't be decremented after we
* return.
* return.
*/
*/
if
(
vcnt
==
0
)
{
if
(
!
vcnt
)
{
/*
/*
* As soon as we turn this on, noone can find us in vn_get
* As soon as we turn this on, noone can find us in vn_get
* until we turn off VINACT or VRECLM
* until we turn off VINACT or VRECLM
...
@@ -331,19 +339,14 @@ vn_rele(struct vnode *vp)
...
@@ -331,19 +339,14 @@ vn_rele(struct vnode *vp)
* Do not make the VOP_INACTIVE call if there
* Do not make the VOP_INACTIVE call if there
* are no behaviors attached to the vnode to call.
* are no behaviors attached to the vnode to call.
*/
*/
if
(
vp
->
v_fbhv
!=
NULL
)
{
if
(
vp
->
v_fbhv
)
VOP_INACTIVE
(
vp
,
NULL
,
cache
);
VOP_INACTIVE
(
vp
,
NULL
,
cache
);
}
VN_LOCK
(
vp
);
VN_LOCK
(
vp
);
if
(
vp
->
v_flag
&
VWAIT
)
{
if
(
vp
->
v_flag
&
VWAIT
)
if
(
vp
->
v_flag
&
VWAIT
)
{
sv_broadcast
(
vptosync
(
vp
));
sv_broadcast
(
vptosync
(
vp
));
}
}
vp
->
v_flag
&=
~
(
VINACT
|
VWAIT
|
VRECLM
|
VMODIFIED
);
vp
->
v_flag
&=
~
(
VINACT
|
VWAIT
|
VRECLM
|
VMODIFIED
);
}
}
VN_UNLOCK
(
vp
,
0
);
VN_UNLOCK
(
vp
,
0
);
...
@@ -355,17 +358,16 @@ vn_rele(struct vnode *vp)
...
@@ -355,17 +358,16 @@ vn_rele(struct vnode *vp)
* Finish the removal of a vnode.
* Finish the removal of a vnode.
*/
*/
void
void
vn_remove
(
struct
vnode
*
vp
)
vn_remove
(
struct
vnode
*
vp
)
{
{
/* REFERENCED */
vmap_t
vmap
;
vmap_t
vmap
;
/* Make sure we don't do this to the same vnode twice */
/* Make sure we don't do this to the same vnode twice */
if
(
!
(
vp
->
v_fbhv
))
if
(
!
(
vp
->
v_fbhv
))
return
;
return
;
XFS_STATS_INC
(
xfsstats
.
vn_remove
);
XFS_STATS_INC
(
xfsstats
.
vn_remove
);
vn_trace_exit
(
vp
,
"vn_remove"
,
(
inst_t
*
)
__return_address
);
vn_trace_exit
(
vp
,
"vn_remove"
,
(
inst_t
*
)
__return_address
);
/*
/*
...
...
fs/xfs/xfs_mount.c
View file @
07f08be5
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
STATIC
void
xfs_mount_reset_sbqflags
(
xfs_mount_t
*
);
STATIC
void
xfs_mount_reset_sbqflags
(
xfs_mount_t
*
);
STATIC
void
xfs_mount_log_sbunit
(
xfs_mount_t
*
,
__int64_t
);
STATIC
void
xfs_mount_log_sbunit
(
xfs_mount_t
*
,
__int64_t
);
STATIC
int
xfs_uuid_mount
(
xfs_mount_t
*
);
STATIC
int
xfs_uuid_mount
(
xfs_mount_t
*
);
STATIC
void
xfs_uuid_unmount
(
xfs_mount_t
*
mp
);
mutex_t
xfs_uuidtabmon
;
/* monitor for uuidtab */
mutex_t
xfs_uuidtabmon
;
/* monitor for uuidtab */
STATIC
int
xfs_uuidtab_size
;
STATIC
int
xfs_uuidtab_size
;
...
...
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