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
c74a1cbb
Commit
c74a1cbb
authored
Jan 12, 2011
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pass default dentry_operations to mount_pseudo()
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
f772c4a6
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
40 additions
and
33 deletions
+40
-33
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/perfmon.c
+4
-2
drivers/mtd/mtdchar.c
drivers/mtd/mtdchar.c
+1
-1
fs/anon_inodes.c
fs/anon_inodes.c
+11
-10
fs/block_dev.c
fs/block_dev.c
+1
-1
fs/libfs.c
fs/libfs.c
+3
-1
fs/pipe.c
fs/pipe.c
+2
-2
include/linux/fs.h
include/linux/fs.h
+3
-1
net/socket.c
net/socket.c
+15
-15
No files found.
arch/ia64/kernel/perfmon.c
View file @
c74a1cbb
...
@@ -617,11 +617,14 @@ pfm_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
...
@@ -617,11 +617,14 @@ pfm_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
return
get_unmapped_area
(
file
,
addr
,
len
,
pgoff
,
flags
);
return
get_unmapped_area
(
file
,
addr
,
len
,
pgoff
,
flags
);
}
}
/* forward declaration */
static
static
const
struct
dentry_operations
pfmfs_dentry_operations
;
static
struct
dentry
*
static
struct
dentry
*
pfmfs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
pfmfs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
{
return
mount_pseudo
(
fs_type
,
"pfm:"
,
NULL
,
PFMFS_MAGIC
);
return
mount_pseudo
(
fs_type
,
"pfm:"
,
NULL
,
&
pfmfs_dentry_operations
,
PFMFS_MAGIC
);
}
}
static
struct
file_system_type
pfm_fs_type
=
{
static
struct
file_system_type
pfm_fs_type
=
{
...
@@ -2232,7 +2235,6 @@ pfm_alloc_file(pfm_context_t *ctx)
...
@@ -2232,7 +2235,6 @@ pfm_alloc_file(pfm_context_t *ctx)
}
}
path
.
mnt
=
mntget
(
pfmfs_mnt
);
path
.
mnt
=
mntget
(
pfmfs_mnt
);
d_set_d_op
(
path
.
dentry
,
&
pfmfs_dentry_operations
);
d_add
(
path
.
dentry
,
inode
);
d_add
(
path
.
dentry
,
inode
);
file
=
alloc_file
(
&
path
,
FMODE_READ
,
&
pfm_file_ops
);
file
=
alloc_file
(
&
path
,
FMODE_READ
,
&
pfm_file_ops
);
...
...
drivers/mtd/mtdchar.c
View file @
c74a1cbb
...
@@ -1134,7 +1134,7 @@ static const struct file_operations mtd_fops = {
...
@@ -1134,7 +1134,7 @@ static const struct file_operations mtd_fops = {
static
struct
dentry
*
mtd_inodefs_mount
(
struct
file_system_type
*
fs_type
,
static
struct
dentry
*
mtd_inodefs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
{
return
mount_pseudo
(
fs_type
,
"mtd_inode:"
,
NULL
,
MTD_INODE_FS_MAGIC
);
return
mount_pseudo
(
fs_type
,
"mtd_inode:"
,
NULL
,
NULL
,
MTD_INODE_FS_MAGIC
);
}
}
static
struct
file_system_type
mtd_inodefs_type
=
{
static
struct
file_system_type
mtd_inodefs_type
=
{
...
...
fs/anon_inodes.c
View file @
c74a1cbb
...
@@ -26,12 +26,6 @@ static struct vfsmount *anon_inode_mnt __read_mostly;
...
@@ -26,12 +26,6 @@ static struct vfsmount *anon_inode_mnt __read_mostly;
static
struct
inode
*
anon_inode_inode
;
static
struct
inode
*
anon_inode_inode
;
static
const
struct
file_operations
anon_inode_fops
;
static
const
struct
file_operations
anon_inode_fops
;
static
struct
dentry
*
anon_inodefs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
return
mount_pseudo
(
fs_type
,
"anon_inode:"
,
NULL
,
ANON_INODE_FS_MAGIC
);
}
/*
/*
* anon_inodefs_dname() is called from d_path().
* anon_inodefs_dname() is called from d_path().
*/
*/
...
@@ -41,14 +35,22 @@ static char *anon_inodefs_dname(struct dentry *dentry, char *buffer, int buflen)
...
@@ -41,14 +35,22 @@ static char *anon_inodefs_dname(struct dentry *dentry, char *buffer, int buflen)
dentry
->
d_name
.
name
);
dentry
->
d_name
.
name
);
}
}
static
const
struct
dentry_operations
anon_inodefs_dentry_operations
=
{
.
d_dname
=
anon_inodefs_dname
,
};
static
struct
dentry
*
anon_inodefs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
return
mount_pseudo
(
fs_type
,
"anon_inode:"
,
NULL
,
&
anon_inodefs_dentry_operations
,
ANON_INODE_FS_MAGIC
);
}
static
struct
file_system_type
anon_inode_fs_type
=
{
static
struct
file_system_type
anon_inode_fs_type
=
{
.
name
=
"anon_inodefs"
,
.
name
=
"anon_inodefs"
,
.
mount
=
anon_inodefs_mount
,
.
mount
=
anon_inodefs_mount
,
.
kill_sb
=
kill_anon_super
,
.
kill_sb
=
kill_anon_super
,
};
};
static
const
struct
dentry_operations
anon_inodefs_dentry_operations
=
{
.
d_dname
=
anon_inodefs_dname
,
};
/*
/*
* nop .set_page_dirty method so that people can use .page_mkwrite on
* nop .set_page_dirty method so that people can use .page_mkwrite on
...
@@ -113,7 +115,6 @@ struct file *anon_inode_getfile(const char *name,
...
@@ -113,7 +115,6 @@ struct file *anon_inode_getfile(const char *name,
*/
*/
ihold
(
anon_inode_inode
);
ihold
(
anon_inode_inode
);
d_set_d_op
(
path
.
dentry
,
&
anon_inodefs_dentry_operations
);
d_instantiate
(
path
.
dentry
,
anon_inode_inode
);
d_instantiate
(
path
.
dentry
,
anon_inode_inode
);
error
=
-
ENFILE
;
error
=
-
ENFILE
;
...
...
fs/block_dev.c
View file @
c74a1cbb
...
@@ -473,7 +473,7 @@ static const struct super_operations bdev_sops = {
...
@@ -473,7 +473,7 @@ static const struct super_operations bdev_sops = {
static
struct
dentry
*
bd_mount
(
struct
file_system_type
*
fs_type
,
static
struct
dentry
*
bd_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
{
return
mount_pseudo
(
fs_type
,
"bdev:"
,
&
bdev_sops
,
0x62646576
);
return
mount_pseudo
(
fs_type
,
"bdev:"
,
&
bdev_sops
,
NULL
,
0x62646576
);
}
}
static
struct
file_system_type
bd_type
=
{
static
struct
file_system_type
bd_type
=
{
...
...
fs/libfs.c
View file @
c74a1cbb
...
@@ -217,7 +217,8 @@ static const struct super_operations simple_super_operations = {
...
@@ -217,7 +217,8 @@ static const struct super_operations simple_super_operations = {
* will never be mountable)
* will never be mountable)
*/
*/
struct
dentry
*
mount_pseudo
(
struct
file_system_type
*
fs_type
,
char
*
name
,
struct
dentry
*
mount_pseudo
(
struct
file_system_type
*
fs_type
,
char
*
name
,
const
struct
super_operations
*
ops
,
unsigned
long
magic
)
const
struct
super_operations
*
ops
,
const
struct
dentry_operations
*
dops
,
unsigned
long
magic
)
{
{
struct
super_block
*
s
=
sget
(
fs_type
,
NULL
,
set_anon_super
,
NULL
);
struct
super_block
*
s
=
sget
(
fs_type
,
NULL
,
set_anon_super
,
NULL
);
struct
dentry
*
dentry
;
struct
dentry
*
dentry
;
...
@@ -254,6 +255,7 @@ struct dentry *mount_pseudo(struct file_system_type *fs_type, char *name,
...
@@ -254,6 +255,7 @@ struct dentry *mount_pseudo(struct file_system_type *fs_type, char *name,
dentry
->
d_parent
=
dentry
;
dentry
->
d_parent
=
dentry
;
d_instantiate
(
dentry
,
root
);
d_instantiate
(
dentry
,
root
);
s
->
s_root
=
dentry
;
s
->
s_root
=
dentry
;
s
->
s_d_op
=
dops
;
s
->
s_flags
|=
MS_ACTIVE
;
s
->
s_flags
|=
MS_ACTIVE
;
return
dget
(
s
->
s_root
);
return
dget
(
s
->
s_root
);
...
...
fs/pipe.c
View file @
c74a1cbb
...
@@ -1004,7 +1004,6 @@ struct file *create_write_pipe(int flags)
...
@@ -1004,7 +1004,6 @@ struct file *create_write_pipe(int flags)
goto
err_inode
;
goto
err_inode
;
path
.
mnt
=
mntget
(
pipe_mnt
);
path
.
mnt
=
mntget
(
pipe_mnt
);
d_set_d_op
(
path
.
dentry
,
&
pipefs_dentry_operations
);
d_instantiate
(
path
.
dentry
,
inode
);
d_instantiate
(
path
.
dentry
,
inode
);
err
=
-
ENFILE
;
err
=
-
ENFILE
;
...
@@ -1266,7 +1265,8 @@ static const struct super_operations pipefs_ops = {
...
@@ -1266,7 +1265,8 @@ static const struct super_operations pipefs_ops = {
static
struct
dentry
*
pipefs_mount
(
struct
file_system_type
*
fs_type
,
static
struct
dentry
*
pipefs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
{
return
mount_pseudo
(
fs_type
,
"pipe:"
,
&
pipefs_ops
,
PIPEFS_MAGIC
);
return
mount_pseudo
(
fs_type
,
"pipe:"
,
&
pipefs_ops
,
&
pipefs_dentry_operations
,
PIPEFS_MAGIC
);
}
}
static
struct
file_system_type
pipe_fs_type
=
{
static
struct
file_system_type
pipe_fs_type
=
{
...
...
include/linux/fs.h
View file @
c74a1cbb
...
@@ -1835,7 +1835,9 @@ struct super_block *sget(struct file_system_type *type,
...
@@ -1835,7 +1835,9 @@ struct super_block *sget(struct file_system_type *type,
int
(
*
set
)(
struct
super_block
*
,
void
*
),
int
(
*
set
)(
struct
super_block
*
,
void
*
),
void
*
data
);
void
*
data
);
extern
struct
dentry
*
mount_pseudo
(
struct
file_system_type
*
,
char
*
,
extern
struct
dentry
*
mount_pseudo
(
struct
file_system_type
*
,
char
*
,
const
struct
super_operations
*
ops
,
unsigned
long
);
const
struct
super_operations
*
ops
,
const
struct
dentry_operations
*
dops
,
unsigned
long
);
extern
void
simple_set_mnt
(
struct
vfsmount
*
mnt
,
struct
super_block
*
sb
);
extern
void
simple_set_mnt
(
struct
vfsmount
*
mnt
,
struct
super_block
*
sb
);
static
inline
void
sb_mark_dirty
(
struct
super_block
*
sb
)
static
inline
void
sb_mark_dirty
(
struct
super_block
*
sb
)
...
...
net/socket.c
View file @
c74a1cbb
...
@@ -306,20 +306,6 @@ static const struct super_operations sockfs_ops = {
...
@@ -306,20 +306,6 @@ static const struct super_operations sockfs_ops = {
.
statfs
=
simple_statfs
,
.
statfs
=
simple_statfs
,
};
};
static
struct
dentry
*
sockfs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
return
mount_pseudo
(
fs_type
,
"socket:"
,
&
sockfs_ops
,
SOCKFS_MAGIC
);
}
static
struct
vfsmount
*
sock_mnt
__read_mostly
;
static
struct
file_system_type
sock_fs_type
=
{
.
name
=
"sockfs"
,
.
mount
=
sockfs_mount
,
.
kill_sb
=
kill_anon_super
,
};
/*
/*
* sockfs_dname() is called from d_path().
* sockfs_dname() is called from d_path().
*/
*/
...
@@ -333,6 +319,21 @@ static const struct dentry_operations sockfs_dentry_operations = {
...
@@ -333,6 +319,21 @@ static const struct dentry_operations sockfs_dentry_operations = {
.
d_dname
=
sockfs_dname
,
.
d_dname
=
sockfs_dname
,
};
};
static
struct
dentry
*
sockfs_mount
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
)
{
return
mount_pseudo
(
fs_type
,
"socket:"
,
&
sockfs_ops
,
&
sockfs_dentry_operations
,
SOCKFS_MAGIC
);
}
static
struct
vfsmount
*
sock_mnt
__read_mostly
;
static
struct
file_system_type
sock_fs_type
=
{
.
name
=
"sockfs"
,
.
mount
=
sockfs_mount
,
.
kill_sb
=
kill_anon_super
,
};
/*
/*
* Obtains the first available file descriptor and sets it up for use.
* Obtains the first available file descriptor and sets it up for use.
*
*
...
@@ -368,7 +369,6 @@ static int sock_alloc_file(struct socket *sock, struct file **f, int flags)
...
@@ -368,7 +369,6 @@ static int sock_alloc_file(struct socket *sock, struct file **f, int flags)
}
}
path
.
mnt
=
mntget
(
sock_mnt
);
path
.
mnt
=
mntget
(
sock_mnt
);
d_set_d_op
(
path
.
dentry
,
&
sockfs_dentry_operations
);
d_instantiate
(
path
.
dentry
,
SOCK_INODE
(
sock
));
d_instantiate
(
path
.
dentry
,
SOCK_INODE
(
sock
));
SOCK_INODE
(
sock
)
->
i_fop
=
&
socket_file_ops
;
SOCK_INODE
(
sock
)
->
i_fop
=
&
socket_file_ops
;
...
...
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