summaryrefslogtreecommitdiffstats
path: root/fs/hfs
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-09-19 19:15:08 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-09-19 19:15:08 +0000
commit03ba4131783cc9e872f8bb26a03f15bc11f27564 (patch)
tree88db8dba75ae06ba3bad08e42c5e52efc162535c /fs/hfs
parent257730f99381dd26e10b832fce4c94cae7ac1176 (diff)
- Merge with Linux 2.1.121.
- Bugfixes.
Diffstat (limited to 'fs/hfs')
-rw-r--r--fs/hfs/dir_cap.c1
-rw-r--r--fs/hfs/dir_dbl.c1
-rw-r--r--fs/hfs/dir_nat.c1
-rw-r--r--fs/hfs/file.c1
-rw-r--r--fs/hfs/file_cap.c1
-rw-r--r--fs/hfs/file_hdr.c1
-rw-r--r--fs/hfs/super.c19
7 files changed, 19 insertions, 6 deletions
diff --git a/fs/hfs/dir_cap.c b/fs/hfs/dir_cap.c
index a7bb7f633..a40854e66 100644
--- a/fs/hfs/dir_cap.c
+++ b/fs/hfs/dir_cap.c
@@ -66,6 +66,7 @@ static struct file_operations hfs_cap_dir_operations = {
NULL, /* ioctl - default */
NULL, /* mmap - none */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/dir_dbl.c b/fs/hfs/dir_dbl.c
index 553fe8ef9..1e14b3f24 100644
--- a/fs/hfs/dir_dbl.c
+++ b/fs/hfs/dir_dbl.c
@@ -66,6 +66,7 @@ static struct file_operations hfs_dbl_dir_operations = {
NULL, /* ioctl - default */
NULL, /* mmap - none */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/dir_nat.c b/fs/hfs/dir_nat.c
index b29bfdc17..b69a6bd70 100644
--- a/fs/hfs/dir_nat.c
+++ b/fs/hfs/dir_nat.c
@@ -69,6 +69,7 @@ static struct file_operations hfs_nat_dir_operations = {
NULL, /* ioctl - default */
NULL, /* mmap - none */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/file.c b/fs/hfs/file.c
index e12792036..6157afb47 100644
--- a/fs/hfs/file.c
+++ b/fs/hfs/file.c
@@ -41,6 +41,7 @@ static struct file_operations hfs_file_operations = {
NULL, /* ioctl - default */
generic_file_mmap, /* mmap */
NULL, /* open */
+ NULL, /* flush */
NULL, /* release */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/file_cap.c b/fs/hfs/file_cap.c
index 10f39f751..4fbd1f090 100644
--- a/fs/hfs/file_cap.c
+++ b/fs/hfs/file_cap.c
@@ -55,6 +55,7 @@ static struct file_operations hfs_cap_info_operations = {
NULL, /* ioctl - default */
NULL, /* mmap - not yet */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/file_hdr.c b/fs/hfs/file_hdr.c
index 049381dd0..b12a4606b 100644
--- a/fs/hfs/file_hdr.c
+++ b/fs/hfs/file_hdr.c
@@ -48,6 +48,7 @@ static struct file_operations hfs_hdr_operations = {
NULL, /* ioctl - default */
NULL, /* mmap - XXX: not yet */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
file_fsync, /* fsync - default */
NULL, /* fasync - default */
diff --git a/fs/hfs/super.c b/fs/hfs/super.c
index 166d69cd5..381969d34 100644
--- a/fs/hfs/super.c
+++ b/fs/hfs/super.c
@@ -396,9 +396,7 @@ struct super_block *hfs_read_super(struct super_block *s, void *data,
struct hfs_mdb *mdb;
struct hfs_cat_key key;
kdev_t dev = s->s_dev;
-#ifndef CONFIG_MAC_PARTITION
hfs_s32 part_size, part_start;
-#endif
struct inode *root_inode;
int part;
@@ -415,16 +413,25 @@ struct super_block *hfs_read_super(struct super_block *s, void *data,
/* set the device driver to 512-byte blocks */
set_blocksize(dev, HFS_SECTOR_SIZE);
- /* look for a partition table and find the correct partition */
-#ifndef CONFIG_MAC_PARTITION
+#ifdef CONFIG_MAC_PARTITION
+ /* check to see if we're in a partition */
+ mdb = hfs_mdb_get(s, s->s_flags & MS_RDONLY, 0);
+
+ /* erk. try parsing the partition table ourselves */
+ if (!mdb) {
+ if (hfs_part_find(s, part, silent, &part_size, &part_start)) {
+ goto bail2;
+ }
+ mdb = hfs_mdb_get(s, s->s_flags & MS_RDONLY, part_start);
+ }
+#else
if (hfs_part_find(s, part, silent, &part_size, &part_start)) {
goto bail2;
}
mdb = hfs_mdb_get(s, s->s_flags & MS_RDONLY, part_start);
-#else
- mdb = hfs_mdb_get(s, s->s_flags & MS_RDONLY, 0);
#endif
+
if (!mdb) {
if (!silent) {
printk("VFS: Can't find a HFS filesystem on dev %s.\n",