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
5d53b9bf
Commit
5d53b9bf
authored
Mar 04, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/sparc-2.6
into ppc970.osdl.org:/home/torvalds/v2.5/linux
parents
d77461da
837fd582
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
113 additions
and
73 deletions
+113
-73
arch/arm/Makefile
arch/arm/Makefile
+5
-0
arch/arm/kernel/armksyms.c
arch/arm/kernel/armksyms.c
+1
-0
arch/arm/mm/Kconfig
arch/arm/mm/Kconfig
+1
-1
drivers/usb/gadget/inode.c
drivers/usb/gadget/inode.c
+10
-6
drivers/video/aty/radeon_base.c
drivers/video/aty/radeon_base.c
+1
-1
fs/adfs/super.c
fs/adfs/super.c
+4
-2
fs/afs/super.c
fs/afs/super.c
+0
-1
fs/autofs4/inode.c
fs/autofs4/inode.c
+3
-9
fs/befs/linuxvfs.c
fs/befs/linuxvfs.c
+4
-2
fs/coda/inode.c
fs/coda/inode.c
+2
-0
fs/cramfs/inode.c
fs/cramfs/inode.c
+9
-1
fs/efs/super.c
fs/efs/super.c
+4
-1
fs/ext2/super.c
fs/ext2/super.c
+12
-9
fs/ext3/super.c
fs/ext3/super.c
+12
-10
fs/freevxfs/vxfs_super.c
fs/freevxfs/vxfs_super.c
+4
-1
fs/hfs/super.c
fs/hfs/super.c
+3
-1
fs/hfsplus/super.c
fs/hfsplus/super.c
+4
-1
fs/hpfs/super.c
fs/hpfs/super.c
+21
-17
fs/romfs/inode.c
fs/romfs/inode.c
+13
-10
No files found.
arch/arm/Makefile
View file @
5d53b9bf
...
...
@@ -23,6 +23,11 @@ CFLAGS += -mbig-endian
AS
+=
-EB
LD
+=
-EB
AFLAGS
+=
-mbig-endian
else
CFLAGS
+=
-mlittle-endian
AS
+=
-EL
LD
+=
-EL
AFLAGS
+=
-mlittle-endian
endif
comma
=
,
...
...
arch/arm/kernel/armksyms.c
View file @
5d53b9bf
...
...
@@ -187,6 +187,7 @@ EXPORT_SYMBOL(__arch_copy_from_user);
EXPORT_SYMBOL
(
__arch_copy_to_user
);
EXPORT_SYMBOL
(
__arch_clear_user
);
EXPORT_SYMBOL
(
__arch_strnlen_user
);
EXPORT_SYMBOL
(
__arch_strncpy_from_user
);
/* consistent area handling */
EXPORT_SYMBOL
(
consistent_alloc
);
...
...
arch/arm/mm/Kconfig
View file @
5d53b9bf
...
...
@@ -347,7 +347,7 @@ config CPU_BIG_ENDIAN
help
Say Y if you plan on running a kernel in big-endian mode.
Note that your board must be properly built and your board
port must properly enable an
d
big-endian related features
port must properly enable an
y
big-endian related features
of your chipset/board/processor.
config CPU_ICACHE_DISABLE
...
...
drivers/usb/gadget/inode.c
View file @
5d53b9bf
...
...
@@ -1812,7 +1812,6 @@ gadgetfs_fill_super (struct super_block *sb, void *opts, int silent)
return
-
ENOMEM
;
inode
->
i_op
=
&
simple_dir_inode_operations
;
if
(
!
(
d
=
d_alloc_root
(
inode
)))
{
enomem:
iput
(
inode
);
return
-
ENOMEM
;
}
...
...
@@ -1823,12 +1822,15 @@ gadgetfs_fill_super (struct super_block *sb, void *opts, int silent)
*/
dev
=
dev_new
();
if
(
!
dev
)
goto
enomem
;
return
-
ENOMEM
;
dev
->
sb
=
sb
;
if
(
!
(
inode
=
gadgetfs_create_file
(
sb
,
CHIP
,
dev
,
&
dev_init_operations
,
&
dev
->
dentry
)))
goto
enomem
;
&
dev
->
dentry
)))
{
put_dev
(
dev
);
return
-
ENOMEM
;
}
/* other endpoint files are available after hardware setup,
* from binding to a controller.
...
...
@@ -1849,8 +1851,10 @@ static void
gadgetfs_kill_sb
(
struct
super_block
*
sb
)
{
kill_litter_super
(
sb
);
put_dev
(
the_device
);
the_device
=
0
;
if
(
the_device
)
{
put_dev
(
the_device
);
the_device
=
0
;
}
}
/*----------------------------------------------------------------------*/
...
...
drivers/video/aty/radeon_base.c
View file @
5d53b9bf
...
...
@@ -135,7 +135,7 @@ static struct pci_device_id radeonfb_pci_table[] = {
CHIP_DEF
(
PCI_CHIP_R200_QM
,
R200
,
CHIP_HAS_CRTC2
),
/* Mobility M7 */
CHIP_DEF
(
PCI_CHIP_RADEON_LW
,
RV200
,
CHIP_HAS_CRTC2
|
CHIP_IS_MOBILITY
),
CHIP_DEF
(
PCI_CHIP_RADEON_L
W
,
RV200
,
CHIP_HAS_CRTC2
|
CHIP_IS_MOBILITY
),
CHIP_DEF
(
PCI_CHIP_RADEON_L
X
,
RV200
,
CHIP_HAS_CRTC2
|
CHIP_IS_MOBILITY
),
/* 7500 */
CHIP_DEF
(
PCI_CHIP_RV200_QW
,
RV200
,
CHIP_HAS_CRTC2
),
CHIP_DEF
(
PCI_CHIP_RV200_QX
,
RV200
,
CHIP_HAS_CRTC2
),
...
...
fs/adfs/super.c
View file @
5d53b9bf
...
...
@@ -333,6 +333,7 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent)
struct
object_info
root_obj
;
unsigned
char
*
b_data
;
struct
adfs_sb_info
*
asb
;
struct
inode
*
root
;
asb
=
kmalloc
(
sizeof
(
*
asb
),
GFP_KERNEL
);
if
(
!
asb
)
...
...
@@ -443,10 +444,11 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent)
asb
->
s_namelen
=
ADFS_F_NAME_LEN
;
}
sb
->
s_root
=
d_alloc_root
(
adfs_iget
(
sb
,
&
root_obj
));
root
=
adfs_iget
(
sb
,
&
root_obj
);
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
int
i
;
iput
(
root
);
for
(
i
=
0
;
i
<
asb
->
s_map_size
;
i
++
)
brelse
(
asb
->
s_map
[
i
].
dm_bh
);
kfree
(
asb
->
s_map
);
...
...
fs/afs/super.c
View file @
5d53b9bf
...
...
@@ -280,7 +280,6 @@ static int afs_fill_super(struct super_block *sb, void *data, int silent)
return
0
;
error:
dput
(
root
);
iput
(
inode
);
afs_put_volume
(
as
->
volume
);
kfree
(
as
);
...
...
fs/autofs4/inode.c
View file @
5d53b9bf
...
...
@@ -213,6 +213,9 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
* Get the root inode and dentry, but defer checking for errors.
*/
root_inode
=
autofs4_get_inode
(
s
,
autofs4_mkroot
(
sbi
));
if
(
!
root_inode
)
goto
fail_free
;
root_inode
->
i_op
=
&
autofs4_root_inode_operations
;
root_inode
->
i_fop
=
&
autofs4_root_operations
;
root
=
d_alloc_root
(
root_inode
);
...
...
@@ -264,22 +267,13 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
*/
fail_fput:
printk
(
"autofs: pipe file descriptor does not contain proper ops
\n
"
);
/*
* fput() can block, so we clear the super block first.
*/
fput
(
pipe
);
/* fall through */
fail_dput:
/*
* dput() can block, so we clear the super block first.
*/
dput
(
root
);
goto
fail_free
;
fail_iput:
printk
(
"autofs: get root dentry failed
\n
"
);
/*
* iput() can block, so we clear the super block first.
*/
iput
(
root_inode
);
fail_free:
kfree
(
sbi
);
...
...
fs/befs/linuxvfs.c
View file @
5d53b9bf
...
...
@@ -789,6 +789,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
struct
buffer_head
*
bh
;
befs_sb_info
*
befs_sb
;
befs_super_block
*
disk_sb
;
struct
inode
*
root
;
const
unsigned
long
sb_block
=
0
;
const
off_t
x86_sb_off
=
512
;
...
...
@@ -863,9 +864,10 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
/* Set real blocksize of fs */
sb_set_blocksize
(
sb
,
(
ulong
)
befs_sb
->
block_size
);
sb
->
s_op
=
(
struct
super_operations
*
)
&
befs_sops
;
sb
->
s_root
=
d_alloc_root
(
iget
(
sb
,
iaddr2blockno
(
sb
,
&
(
befs_sb
->
root_dir
)))
);
root
=
iget
(
sb
,
iaddr2blockno
(
sb
,
&
(
befs_sb
->
root_dir
)));
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
iput
(
root
);
befs_error
(
sb
,
"get root inode failed"
);
goto
unaquire_priv_sbp
;
}
...
...
fs/coda/inode.c
View file @
5d53b9bf
...
...
@@ -195,6 +195,8 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
printk
(
"coda_read_super: rootinode is %ld dev %s
\n
"
,
root
->
i_ino
,
root
->
i_sb
->
s_id
);
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
goto
error
;
return
0
;
error:
...
...
fs/cramfs/inode.c
View file @
5d53b9bf
...
...
@@ -199,6 +199,7 @@ static int cramfs_fill_super(struct super_block *sb, void *data, int silent)
struct
cramfs_super
super
;
unsigned
long
root_offset
;
struct
cramfs_sb_info
*
sbi
;
struct
inode
*
root
;
sbi
=
kmalloc
(
sizeof
(
struct
cramfs_sb_info
),
GFP_KERNEL
);
if
(
!
sbi
)
...
...
@@ -263,7 +264,14 @@ static int cramfs_fill_super(struct super_block *sb, void *data, int silent)
/* Set it all up.. */
sb
->
s_op
=
&
cramfs_ops
;
sb
->
s_root
=
d_alloc_root
(
get_cramfs_inode
(
sb
,
&
super
.
root
));
root
=
get_cramfs_inode
(
sb
,
&
super
.
root
);
if
(
!
root
)
goto
out
;
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
iput
(
root
);
goto
out
;
}
return
0
;
out:
kfree
(
sbi
);
...
...
fs/efs/super.c
View file @
5d53b9bf
...
...
@@ -210,6 +210,7 @@ int efs_fill_super(struct super_block *s, void *d, int silent)
{
struct
efs_sb_info
*
sb
;
struct
buffer_head
*
bh
;
struct
inode
*
root
;
sb
=
kmalloc
(
sizeof
(
struct
efs_sb_info
),
GFP_KERNEL
);
if
(
!
sb
)
...
...
@@ -266,10 +267,12 @@ int efs_fill_super(struct super_block *s, void *d, int silent)
s
->
s_flags
|=
MS_RDONLY
;
}
s
->
s_op
=
&
efs_superblock_operations
;
s
->
s_root
=
d_alloc_root
(
iget
(
s
,
EFS_ROOTINODE
));
root
=
iget
(
s
,
EFS_ROOTINODE
);
s
->
s_root
=
d_alloc_root
(
root
);
if
(
!
(
s
->
s_root
))
{
printk
(
KERN_ERR
"EFS: get root inode failed
\n
"
);
iput
(
root
);
goto
out_no_fs
;
}
...
...
fs/ext2/super.c
View file @
5d53b9bf
...
...
@@ -563,6 +563,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
struct
buffer_head
*
bh
;
struct
ext2_sb_info
*
sbi
;
struct
ext2_super_block
*
es
;
struct
inode
*
root
;
unsigned
long
block
,
sb_block
=
1
;
unsigned
long
logic_sb_block
=
get_sb_block
(
&
data
);
unsigned
long
offset
=
0
;
...
...
@@ -815,15 +816,17 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
*/
sb
->
s_op
=
&
ext2_sops
;
sb
->
s_export_op
=
&
ext2_export_ops
;
sb
->
s_root
=
d_alloc_root
(
iget
(
sb
,
EXT2_ROOT_INO
));
if
(
!
sb
->
s_root
||
!
S_ISDIR
(
sb
->
s_root
->
d_inode
->
i_mode
)
||
!
sb
->
s_root
->
d_inode
->
i_blocks
||
!
sb
->
s_root
->
d_inode
->
i_size
)
{
if
(
sb
->
s_root
)
{
dput
(
sb
->
s_root
);
sb
->
s_root
=
NULL
;
printk
(
KERN_ERR
"EXT2-fs: corrupt root inode, run e2fsck
\n
"
);
}
else
printk
(
KERN_ERR
"EXT2-fs: get root inode failed
\n
"
);
root
=
iget
(
sb
,
EXT2_ROOT_INO
);
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
iput
(
root
);
printk
(
KERN_ERR
"EXT2-fs: get root inode failed
\n
"
);
goto
failed_mount2
;
}
if
(
!
S_ISDIR
(
root
->
i_mode
)
||
!
root
->
i_blocks
||
!
root
->
i_size
)
{
dput
(
sb
->
s_root
);
sb
->
s_root
=
NULL
;
printk
(
KERN_ERR
"EXT2-fs: corrupt root inode, run e2fsck
\n
"
);
goto
failed_mount2
;
}
if
(
EXT2_HAS_COMPAT_FEATURE
(
sb
,
EXT3_FEATURE_COMPAT_HAS_JOURNAL
))
...
...
fs/ext3/super.c
View file @
5d53b9bf
...
...
@@ -1040,6 +1040,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
unsigned
long
offset
=
0
;
unsigned
long
journal_inum
=
0
;
unsigned
long
def_mount_opts
;
struct
inode
*
root
;
int
blocksize
;
int
hblock
;
int
db_count
;
...
...
@@ -1354,16 +1355,17 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
* so we can safely mount the rest of the filesystem now.
*/
sb
->
s_root
=
d_alloc_root
(
iget
(
sb
,
EXT3_ROOT_INO
));
if
(
!
sb
->
s_root
||
!
S_ISDIR
(
sb
->
s_root
->
d_inode
->
i_mode
)
||
!
sb
->
s_root
->
d_inode
->
i_blocks
||
!
sb
->
s_root
->
d_inode
->
i_size
)
{
if
(
sb
->
s_root
)
{
dput
(
sb
->
s_root
);
sb
->
s_root
=
NULL
;
printk
(
KERN_ERR
"EXT3-fs: corrupt root inode, run e2fsck
\n
"
);
}
else
printk
(
KERN_ERR
"EXT3-fs: get root inode failed
\n
"
);
root
=
iget
(
sb
,
EXT3_ROOT_INO
);
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
printk
(
KERN_ERR
"EXT3-fs: get root inode failed
\n
"
);
iput
(
root
);
goto
failed_mount3
;
}
if
(
!
S_ISDIR
(
root
->
i_mode
)
||
!
root
->
i_blocks
||
!
root
->
i_size
)
{
dput
(
sb
->
s_root
);
sb
->
s_root
=
NULL
;
printk
(
KERN_ERR
"EXT3-fs: corrupt root inode, run e2fsck
\n
"
);
goto
failed_mount3
;
}
...
...
fs/freevxfs/vxfs_super.c
View file @
5d53b9bf
...
...
@@ -143,6 +143,7 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
struct
vxfs_sb
*
rsbp
;
struct
buffer_head
*
bp
=
NULL
;
u_long
bsize
;
struct
inode
*
root
;
infp
=
kmalloc
(
sizeof
(
*
infp
),
GFP_KERNEL
);
if
(
!
infp
)
{
...
...
@@ -208,8 +209,10 @@ static int vxfs_fill_super(struct super_block *sbp, void *dp, int silent)
}
sbp
->
s_op
=
&
vxfs_super_ops
;
sbp
->
s_root
=
d_alloc_root
(
iget
(
sbp
,
VXFS_ROOT_INO
));
root
=
iget
(
sbp
,
VXFS_ROOT_INO
);
sbp
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sbp
->
s_root
)
{
iput
(
root
);
printk
(
KERN_WARNING
"vxfs: unable to get root dentry.
\n
"
);
goto
out_free_ilist
;
}
...
...
fs/hfs/super.c
View file @
5d53b9bf
...
...
@@ -294,13 +294,15 @@ static int hfs_fill_super(struct super_block *sb, void *data, int silent)
sb
->
s_root
=
d_alloc_root
(
root_inode
);
if
(
!
sb
->
s_root
)
goto
bail_
no_roo
t
;
goto
bail_
ipu
t
;
sb
->
s_root
->
d_op
=
&
hfs_dentry_operations
;
/* everything's okay */
return
0
;
bail_iput:
iput
(
root_inode
);
bail_no_root:
hfs_warn
(
"hfs_fs: get root inode failed.
\n
"
);
hfs_mdb_put
(
sb
);
...
...
fs/hfsplus/super.c
View file @
5d53b9bf
...
...
@@ -278,6 +278,7 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
struct
hfsplus_sb_info
*
sbi
;
hfsplus_cat_entry
entry
;
struct
hfs_find_data
fd
;
struct
inode
*
root
;
struct
qstr
str
;
int
err
=
-
EINVAL
;
...
...
@@ -364,10 +365,12 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
}
/* Load the root directory */
sb
->
s_root
=
d_alloc_root
(
iget
(
sb
,
HFSPLUS_ROOT_CNID
));
root
=
iget
(
sb
,
HFSPLUS_ROOT_CNID
);
sb
->
s_root
=
d_alloc_root
(
root
);
if
(
!
sb
->
s_root
)
{
if
(
!
silent
)
printk
(
"HFS+-fs: failed to load root directory
\n
"
);
iput
(
root
);
goto
cleanup
;
}
...
...
fs/hpfs/super.c
View file @
5d53b9bf
...
...
@@ -448,6 +448,7 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
struct
hpfs_super_block
*
superblock
;
struct
hpfs_spare_block
*
spareblock
;
struct
hpfs_sb_info
*
sbi
;
struct
inode
*
root
;
uid_t
uid
;
gid_t
gid
;
...
...
@@ -613,10 +614,11 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
brelse
(
bh0
);
hpfs_lock_iget
(
s
,
1
);
s
->
s_root
=
d_alloc_root
(
iget
(
s
,
sbi
->
sb_root
)
);
root
=
iget
(
s
,
sbi
->
sb_root
);
hpfs_unlock_iget
(
s
);
if
(
!
s
->
s_root
||
!
s
->
s_root
->
d_inode
)
{
printk
(
"HPFS: iget failed. Why???
\n
"
);
s
->
s_root
=
d_alloc_root
(
root
);
if
(
!
s
->
s_root
)
{
iput
(
root
);
goto
bail0
;
}
hpfs_set_dentry_operations
(
s
->
s_root
);
...
...
@@ -627,22 +629,24 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
root_dno
=
hpfs_fnode_dno
(
s
,
sbi
->
sb_root
);
if
(
root_dno
)
de
=
map_dirent
(
s
->
s_root
->
d_inode
,
root_dno
,
"
\001\001
"
,
2
,
NULL
,
&
qbh
);
if
(
!
root_dno
||
!
de
)
hpfs_error
(
s
,
"unable to find root dir"
);
de
=
map_dirent
(
root
,
root_dno
,
"
\001\001
"
,
2
,
NULL
,
&
qbh
);
if
(
!
de
)
hpfs_error
(
s
,
"unable to find root dir"
);
else
{
s
->
s_root
->
d_inode
->
i_atime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
read_date
);
s
->
s_root
->
d_inode
->
i_atime
.
tv_nsec
=
0
;
s
->
s_root
->
d_inode
->
i_mtime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
write_date
);
s
->
s_root
->
d_inode
->
i_mtime
.
tv_nsec
=
0
;
s
->
s_root
->
d_inode
->
i_ctime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
creation_date
);
s
->
s_root
->
d_inode
->
i_ctime
.
tv_nsec
=
0
;
hpfs_i
(
s
->
s_root
->
d_inode
)
->
i_ea_size
=
de
->
ea_size
;
hpfs_i
(
s
->
s_root
->
d_inode
)
->
i_parent_dir
=
s
->
s_root
->
d_inode
->
i_ino
;
if
(
s
->
s_root
->
d_inode
->
i_size
==
-
1
)
s
->
s_root
->
d_inode
->
i_size
=
2048
;
if
(
s
->
s_root
->
d_inode
->
i_blocks
==
-
1
)
s
->
s_root
->
d_inode
->
i_blocks
=
5
;
root
->
i_atime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
read_date
);
root
->
i_atime
.
tv_nsec
=
0
;
root
->
i_mtime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
write_date
);
root
->
i_mtime
.
tv_nsec
=
0
;
root
->
i_ctime
.
tv_sec
=
local_to_gmt
(
s
,
de
->
creation_date
);
root
->
i_ctime
.
tv_nsec
=
0
;
hpfs_i
(
root
)
->
i_ea_size
=
de
->
ea_size
;
hpfs_i
(
root
)
->
i_parent_dir
=
root
->
i_ino
;
if
(
root
->
i_size
==
-
1
)
root
->
i_size
=
2048
;
if
(
root
->
i_blocks
==
-
1
)
root
->
i_blocks
=
5
;
hpfs_brelse4
(
&
qbh
);
}
if
(
de
)
hpfs_brelse4
(
&
qbh
);
return
0
;
bail4:
brelse
(
bh2
);
...
...
fs/romfs/inode.c
View file @
5d53b9bf
...
...
@@ -115,6 +115,7 @@ static int romfs_fill_super(struct super_block *s, void *data, int silent)
{
struct
buffer_head
*
bh
;
struct
romfs_super_block
*
rsb
;
struct
inode
*
root
;
int
sz
;
/* I would parse the options here, but there are none.. :) */
...
...
@@ -154,23 +155,25 @@ static int romfs_fill_super(struct super_block *s, void *data, int silent)
strnlen
(
rsb
->
name
,
ROMFS_MAXFN
)
+
1
+
ROMFH_PAD
)
&
ROMFH_MASK
;
brelse
(
bh
);
s
->
s_op
=
&
romfs_ops
;
root
=
iget
(
s
,
sz
);
if
(
!
root
)
goto
out
;
s
->
s_root
=
d_alloc_root
(
iget
(
s
,
sz
));
if
(
!
s
->
s_root
)
goto
out
nobh
;
goto
out
iput
;
/* Ehrhm; sorry.. :) And thanks to Hans-Joachim Widmaier :) */
if
(
0
)
{
brelse
(
bh
);
return
0
;
outiput:
iput
(
root
);
out:
brelse
(
bh
);
brelse
(
bh
);
outnobh:
return
-
EINVAL
;
}
return
0
;
return
-
EINVAL
;
}
/* That's simple too. */
...
...
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