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
a1da9e8a
Commit
a1da9e8a
authored
Jul 26, 2010
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch logfs to ->mount()
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
e5a0726a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
27 deletions
+23
-27
fs/logfs/logfs.h
fs/logfs/logfs.h
+0
-3
fs/logfs/super.c
fs/logfs/super.c
+23
-24
No files found.
fs/logfs/logfs.h
View file @
a1da9e8a
...
@@ -620,9 +620,6 @@ void emergency_read_end(struct page *page);
...
@@ -620,9 +620,6 @@ void emergency_read_end(struct page *page);
void
logfs_crash_dump
(
struct
super_block
*
sb
);
void
logfs_crash_dump
(
struct
super_block
*
sb
);
void
*
memchr_inv
(
const
void
*
s
,
int
c
,
size_t
n
);
void
*
memchr_inv
(
const
void
*
s
,
int
c
,
size_t
n
);
int
logfs_statfs
(
struct
dentry
*
dentry
,
struct
kstatfs
*
stats
);
int
logfs_statfs
(
struct
dentry
*
dentry
,
struct
kstatfs
*
stats
);
int
logfs_get_sb_device
(
struct
logfs_super
*
s
,
struct
file_system_type
*
type
,
int
flags
,
struct
vfsmount
*
mnt
);
int
logfs_check_ds
(
struct
logfs_disk_super
*
ds
);
int
logfs_check_ds
(
struct
logfs_disk_super
*
ds
);
int
logfs_write_sb
(
struct
super_block
*
sb
);
int
logfs_write_sb
(
struct
super_block
*
sb
);
...
...
fs/logfs/super.c
View file @
a1da9e8a
...
@@ -325,7 +325,7 @@ static int logfs_make_writeable(struct super_block *sb)
...
@@ -325,7 +325,7 @@ static int logfs_make_writeable(struct super_block *sb)
return
0
;
return
0
;
}
}
static
int
logfs_get_sb_final
(
struct
super_block
*
sb
,
struct
vfsmount
*
mnt
)
static
int
logfs_get_sb_final
(
struct
super_block
*
sb
)
{
{
struct
logfs_super
*
super
=
logfs_super
(
sb
);
struct
logfs_super
*
super
=
logfs_super
(
sb
);
struct
inode
*
rootdir
;
struct
inode
*
rootdir
;
...
@@ -356,7 +356,6 @@ static int logfs_get_sb_final(struct super_block *sb, struct vfsmount *mnt)
...
@@ -356,7 +356,6 @@ static int logfs_get_sb_final(struct super_block *sb, struct vfsmount *mnt)
}
}
log_super
(
"LogFS: Finished mounting
\n
"
);
log_super
(
"LogFS: Finished mounting
\n
"
);
simple_set_mnt
(
mnt
,
sb
);
return
0
;
return
0
;
fail:
fail:
...
@@ -536,9 +535,8 @@ static void logfs_kill_sb(struct super_block *sb)
...
@@ -536,9 +535,8 @@ static void logfs_kill_sb(struct super_block *sb)
log_super
(
"LogFS: Finished unmounting
\n
"
);
log_super
(
"LogFS: Finished unmounting
\n
"
);
}
}
int
logfs_get_sb_device
(
struct
logfs_super
*
super
,
static
struct
dentry
*
logfs_get_sb_device
(
struct
logfs_super
*
super
,
struct
file_system_type
*
type
,
int
flags
,
struct
file_system_type
*
type
,
int
flags
)
struct
vfsmount
*
mnt
)
{
{
struct
super_block
*
sb
;
struct
super_block
*
sb
;
int
err
=
-
ENOMEM
;
int
err
=
-
ENOMEM
;
...
@@ -548,14 +546,17 @@ int logfs_get_sb_device(struct logfs_super *super,
...
@@ -548,14 +546,17 @@ int logfs_get_sb_device(struct logfs_super *super,
err
=
-
EINVAL
;
err
=
-
EINVAL
;
sb
=
sget
(
type
,
logfs_sb_test
,
logfs_sb_set
,
super
);
sb
=
sget
(
type
,
logfs_sb_test
,
logfs_sb_set
,
super
);
if
(
IS_ERR
(
sb
))
if
(
IS_ERR
(
sb
))
{
goto
err0
;
super
->
s_devops
->
put_device
(
super
);
kfree
(
super
);
return
ERR_CAST
(
sb
);
}
if
(
sb
->
s_root
)
{
if
(
sb
->
s_root
)
{
/* Device is already in use */
/* Device is already in use */
err
=
0
;
super
->
s_devops
->
put_device
(
super
)
;
simple_set_mnt
(
mnt
,
sb
);
kfree
(
super
);
goto
err0
;
return
dget
(
sb
->
s_root
)
;
}
}
/*
/*
...
@@ -573,10 +574,12 @@ int logfs_get_sb_device(struct logfs_super *super,
...
@@ -573,10 +574,12 @@ int logfs_get_sb_device(struct logfs_super *super,
goto
err1
;
goto
err1
;
sb
->
s_flags
|=
MS_ACTIVE
;
sb
->
s_flags
|=
MS_ACTIVE
;
err
=
logfs_get_sb_final
(
sb
,
mnt
);
err
=
logfs_get_sb_final
(
sb
);
if
(
err
)
if
(
err
)
{
deactivate_locked_super
(
sb
);
deactivate_locked_super
(
sb
);
return
err
;
return
ERR_PTR
(
err
);
}
return
dget
(
sb
->
s_root
);
err1:
err1:
/* no ->s_root, no ->put_super() */
/* no ->s_root, no ->put_super() */
...
@@ -584,15 +587,11 @@ int logfs_get_sb_device(struct logfs_super *super,
...
@@ -584,15 +587,11 @@ int logfs_get_sb_device(struct logfs_super *super,
iput
(
super
->
s_segfile_inode
);
iput
(
super
->
s_segfile_inode
);
iput
(
super
->
s_mapping_inode
);
iput
(
super
->
s_mapping_inode
);
deactivate_locked_super
(
sb
);
deactivate_locked_super
(
sb
);
return
err
;
return
ERR_PTR
(
err
);
err0:
super
->
s_devops
->
put_device
(
super
);
kfree
(
super
);
return
err
;
}
}
static
int
logfs_get_sb
(
struct
file_system_type
*
type
,
int
flags
,
static
struct
dentry
*
logfs_mount
(
struct
file_system_type
*
type
,
int
flags
,
const
char
*
devname
,
void
*
data
,
struct
vfsmount
*
mnt
)
const
char
*
devname
,
void
*
data
)
{
{
ulong
mtdnr
;
ulong
mtdnr
;
struct
logfs_super
*
super
;
struct
logfs_super
*
super
;
...
@@ -600,7 +599,7 @@ static int logfs_get_sb(struct file_system_type *type, int flags,
...
@@ -600,7 +599,7 @@ static int logfs_get_sb(struct file_system_type *type, int flags,
super
=
kzalloc
(
sizeof
(
*
super
),
GFP_KERNEL
);
super
=
kzalloc
(
sizeof
(
*
super
),
GFP_KERNEL
);
if
(
!
super
)
if
(
!
super
)
return
-
ENOMEM
;
return
ERR_PTR
(
-
ENOMEM
)
;
if
(
!
devname
)
if
(
!
devname
)
err
=
logfs_get_sb_bdev
(
super
,
type
,
devname
);
err
=
logfs_get_sb_bdev
(
super
,
type
,
devname
);
...
@@ -617,16 +616,16 @@ static int logfs_get_sb(struct file_system_type *type, int flags,
...
@@ -617,16 +616,16 @@ static int logfs_get_sb(struct file_system_type *type, int flags,
if
(
err
)
{
if
(
err
)
{
kfree
(
super
);
kfree
(
super
);
return
err
;
return
ERR_PTR
(
err
)
;
}
}
return
logfs_get_sb_device
(
super
,
type
,
flags
,
mnt
);
return
logfs_get_sb_device
(
super
,
type
,
flags
);
}
}
static
struct
file_system_type
logfs_fs_type
=
{
static
struct
file_system_type
logfs_fs_type
=
{
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
name
=
"logfs"
,
.
name
=
"logfs"
,
.
get_sb
=
logfs_get_sb
,
.
mount
=
logfs_mount
,
.
kill_sb
=
logfs_kill_sb
,
.
kill_sb
=
logfs_kill_sb
,
.
fs_flags
=
FS_REQUIRES_DEV
,
.
fs_flags
=
FS_REQUIRES_DEV
,
...
...
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