Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38882
b: refs/heads/master
c: 3cf1e7b
h: refs/heads/master
v: v3
  • Loading branch information
Steven Whitehouse committed Oct 2, 2006
1 parent 870689a commit ce3a55f
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2e565bb69ce2184eabf4f43e64afc79c46f46204
refs/heads/master: 3cf1e7bed4681bdb1c14b6e146ae9c0afb6c1552
41 changes: 13 additions & 28 deletions trunk/fs/gfs2/ops_fstype.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ static void init_vfs(struct super_block *sb, unsigned noatime)

static int init_names(struct gfs2_sbd *sdp, int silent)
{
struct gfs2_sb *sb = NULL;
struct page *page;
char *proto, *table;
int error = 0;

Expand All @@ -126,37 +126,23 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
/* Try to autodetect */

if (!proto[0] || !table[0]) {
struct buffer_head *bh;
bh = sb_getblk(sdp->sd_vfs,
GFS2_SB_ADDR >> sdp->sd_fsb2bb_shift);
lock_buffer(bh);
clear_buffer_uptodate(bh);
clear_buffer_dirty(bh);
unlock_buffer(bh);
ll_rw_block(READ, 1, &bh);
wait_on_buffer(bh);

if (!buffer_uptodate(bh)) {
brelse(bh);
return -EIO;
}

sb = kmalloc(sizeof(struct gfs2_sb), GFP_KERNEL);
if (!sb) {
brelse(bh);
return -ENOMEM;
}
gfs2_sb_in(sb, bh->b_data);
brelse(bh);

error = gfs2_check_sb(sdp, sb, silent);
struct gfs2_sb *sb;
page = gfs2_read_super(sdp->sd_vfs, GFS2_SB_ADDR >> sdp->sd_fsb2bb_shift);
if (!page)
return -ENOBUFS;
sb = kmap(page);
gfs2_sb_in(&sdp->sd_sb, sb);
kunmap(page);
__free_page(page);

error = gfs2_check_sb(sdp, &sdp->sd_sb, silent);
if (error)
goto out;

if (!proto[0])
proto = sb->sb_lockproto;
proto = sdp->sd_sb.sb_lockproto;
if (!table[0])
table = sb->sb_locktable;
table = sdp->sd_sb.sb_locktable;
}

if (!table[0])
Expand All @@ -166,7 +152,6 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
snprintf(sdp->sd_table_name, GFS2_FSNAME_LEN, "%s", table);

out:
kfree(sb);
return error;
}

Expand Down
4 changes: 2 additions & 2 deletions trunk/fs/gfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static int end_bio_io_page(struct bio *bio, unsigned int bytes_done, int error)
return 0;
}

static struct page *gfs2_read_super(struct super_block *sb, sector_t sector)
struct page *gfs2_read_super(struct super_block *sb, sector_t sector)
{
struct page *page;
struct bio *bio;
Expand All @@ -205,7 +205,7 @@ static struct page *gfs2_read_super(struct super_block *sb, sector_t sector)

bio->bi_end_io = end_bio_io_page;
bio->bi_private = page;
submit_bio(READ_SYNC, bio);
submit_bio(READ_SYNC | (1 << BIO_RW_META), bio);
wait_on_page_locked(page);
bio_put(bio);
if (!PageUptodate(page)) {
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/gfs2/super.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ void gfs2_tune_init(struct gfs2_tune *gt);

int gfs2_check_sb(struct gfs2_sbd *sdp, struct gfs2_sb *sb, int silent);
int gfs2_read_sb(struct gfs2_sbd *sdp, struct gfs2_glock *gl, int silent);
struct page *gfs2_read_super(struct super_block *sb, sector_t sector);

static inline unsigned int gfs2_jindex_size(struct gfs2_sbd *sdp)
{
Expand Down

0 comments on commit ce3a55f

Please sign in to comment.