• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/fs/gfs2/

Lines Matching refs:sdp

85  * @sdp: the filesystem
94 int gfs2_check_sb(struct gfs2_sbd *sdp, struct gfs2_sb_host *sb, int silent)
146 if (!sdp->sd_args.ar_upgrade) {
232 * @sdp: The GFS2 superblock
238 int gfs2_read_sb(struct gfs2_sbd *sdp, struct gfs2_glock *gl, int silent)
247 page = gfs2_read_super(sdp->sd_vfs, GFS2_SB_ADDR >> sdp->sd_fsb2bb_shift);
250 fs_err(sdp, "can't read superblock\n");
254 gfs2_sb_in(&sdp->sd_sb, sb);
258 error = gfs2_check_sb(sdp, &sdp->sd_sb, silent);
262 sdp->sd_fsb2bb_shift = sdp->sd_sb.sb_bsize_shift -
264 sdp->sd_fsb2bb = 1 << sdp->sd_fsb2bb_shift;
265 sdp->sd_diptrs = (sdp->sd_sb.sb_bsize -
267 sdp->sd_inptrs = (sdp->sd_sb.sb_bsize -
269 sdp->sd_jbsize = sdp->sd_sb.sb_bsize - sizeof(struct gfs2_meta_header);
270 sdp->sd_hash_bsize = sdp->sd_sb.sb_bsize / 2;
271 sdp->sd_hash_bsize_shift = sdp->sd_sb.sb_bsize_shift - 1;
272 sdp->sd_hash_ptrs = sdp->sd_hash_bsize / sizeof(u64);
273 sdp->sd_qc_per_block = (sdp->sd_sb.sb_bsize -
280 sdp->sd_jbsize);
283 for (tmp_blocks = hash_blocks; tmp_blocks > sdp->sd_diptrs;) {
284 tmp_blocks = DIV_ROUND_UP(tmp_blocks, sdp->sd_inptrs);
290 sdp->sd_max_dirres = hash_blocks + ind_blocks + leaf_blocks;
292 sdp->sd_heightsize[0] = sdp->sd_sb.sb_bsize -
294 sdp->sd_heightsize[1] = sdp->sd_sb.sb_bsize * sdp->sd_diptrs;
299 space = sdp->sd_heightsize[x - 1] * sdp->sd_inptrs;
301 m = do_div(d, sdp->sd_inptrs);
303 if (d != sdp->sd_heightsize[x - 1] || m)
305 sdp->sd_heightsize[x] = space;
307 sdp->sd_max_height = x;
308 gfs2_assert(sdp, sdp->sd_max_height <= GFS2_MAX_META_HEIGHT);
310 sdp->sd_jheightsize[0] = sdp->sd_sb.sb_bsize -
312 sdp->sd_jheightsize[1] = sdp->sd_jbsize * sdp->sd_diptrs;
317 space = sdp->sd_jheightsize[x - 1] * sdp->sd_inptrs;
319 m = do_div(d, sdp->sd_inptrs);
321 if (d != sdp->sd_jheightsize[x - 1] || m)
323 sdp->sd_jheightsize[x] = space;
325 sdp->sd_max_jheight = x;
326 gfs2_assert(sdp, sdp->sd_max_jheight <= GFS2_MAX_META_HEIGHT);
333 * @sdp: The GFS2 superblock
343 int gfs2_jindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ji_gh)
345 struct gfs2_inode *dip = GFS2_I(sdp->sd_jindex);
353 mutex_lock(&sdp->sd_jindex_mutex);
360 name.len = sprintf(buf, "journal%u", sdp->sd_journals);
363 error = gfs2_dir_search(sdp->sd_jindex, &name, NULL, NULL);
379 jd->jd_inode = gfs2_lookupi(sdp->sd_jindex, &name, 1, NULL);
389 spin_lock(&sdp->sd_jindex_spin);
390 jd->jd_jid = sdp->sd_journals++;
391 list_add_tail(&jd->jd_list, &sdp->sd_jindex_list);
392 spin_unlock(&sdp->sd_jindex_spin);
395 mutex_unlock(&sdp->sd_jindex_mutex);
402 * @sdp: The GFS2 superblock
406 void gfs2_jindex_free(struct gfs2_sbd *sdp)
411 spin_lock(&sdp->sd_jindex_spin);
412 list_add(&list, &sdp->sd_jindex_list);
413 list_del_init(&sdp->sd_jindex_list);
414 sdp->sd_journals = 0;
415 spin_unlock(&sdp->sd_jindex_spin);
443 struct gfs2_jdesc *gfs2_jdesc_find(struct gfs2_sbd *sdp, unsigned int jid)
447 spin_lock(&sdp->sd_jindex_spin);
448 jd = jdesc_find_i(&sdp->sd_jindex_list, jid);
449 spin_unlock(&sdp->sd_jindex_spin);
454 void gfs2_jdesc_make_dirty(struct gfs2_sbd *sdp, unsigned int jid)
458 spin_lock(&sdp->sd_jindex_spin);
459 jd = jdesc_find_i(&sdp->sd_jindex_list, jid);
462 spin_unlock(&sdp->sd_jindex_spin);
465 struct gfs2_jdesc *gfs2_jdesc_find_dirty(struct gfs2_sbd *sdp)
470 spin_lock(&sdp->sd_jindex_spin);
472 list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
479 spin_unlock(&sdp->sd_jindex_spin);
490 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
495 (ip->i_di.di_size & (sdp->sd_sb.sb_bsize - 1))) {
499 jd->jd_blocks = ip->i_di.di_size >> sdp->sd_sb.sb_bsize_shift;
512 * @sdp: the filesystem
517 int gfs2_make_fs_rw(struct gfs2_sbd *sdp)
519 struct gfs2_inode *ip = GFS2_I(sdp->sd_jdesc->jd_inode);
525 error = gfs2_glock_nq_init(sdp->sd_trans_gl, LM_ST_SHARED, 0, &t_gh);
532 error = gfs2_find_jhead(sdp->sd_jdesc, &head);
537 gfs2_consist(sdp);
543 sdp->sd_log_sequence = head.lh_sequence + 1;
544 gfs2_log_pointers_init(sdp, head.lh_blkno);
546 error = gfs2_quota_init(sdp);
550 set_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags);
565 * @sdp: the filesystem
570 int gfs2_make_fs_ro(struct gfs2_sbd *sdp)
575 gfs2_quota_sync(sdp);
576 gfs2_statfs_sync(sdp);
578 error = gfs2_glock_nq_init(sdp->sd_trans_gl, LM_ST_SHARED, GL_NOCACHE,
580 if (error && !test_bit(SDF_SHUTDOWN, &sdp->sd_flags))
583 gfs2_meta_syncfs(sdp);
584 gfs2_log_shutdown(sdp);
586 clear_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags);
591 gfs2_quota_cleanup(sdp);
596 int gfs2_statfs_init(struct gfs2_sbd *sdp)
598 struct gfs2_inode *m_ip = GFS2_I(sdp->sd_statfs_inode);
599 struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master;
600 struct gfs2_inode *l_ip = GFS2_I(sdp->sd_sc_inode);
601 struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
615 if (sdp->sd_args.ar_spectator) {
616 spin_lock(&sdp->sd_statfs_spin);
619 spin_unlock(&sdp->sd_statfs_spin);
625 spin_lock(&sdp->sd_statfs_spin);
630 spin_unlock(&sdp->sd_statfs_spin);
642 void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free,
645 struct gfs2_inode *l_ip = GFS2_I(sdp->sd_sc_inode);
646 struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
654 mutex_lock(&sdp->sd_statfs_mutex);
656 mutex_unlock(&sdp->sd_statfs_mutex);
658 spin_lock(&sdp->sd_statfs_spin);
663 spin_unlock(&sdp->sd_statfs_spin);
668 int gfs2_statfs_sync(struct gfs2_sbd *sdp)
670 struct gfs2_inode *m_ip = GFS2_I(sdp->sd_statfs_inode);
671 struct gfs2_inode *l_ip = GFS2_I(sdp->sd_sc_inode);
672 struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master;
673 struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
687 spin_lock(&sdp->sd_statfs_spin);
691 spin_unlock(&sdp->sd_statfs_spin);
694 spin_unlock(&sdp->sd_statfs_spin);
700 error = gfs2_trans_begin(sdp, 2 * RES_DINODE, 0);
704 mutex_lock(&sdp->sd_statfs_mutex);
706 mutex_unlock(&sdp->sd_statfs_mutex);
708 spin_lock(&sdp->sd_statfs_spin);
715 spin_unlock(&sdp->sd_statfs_spin);
720 gfs2_trans_end(sdp);
733 * @sdp: the filesystem
739 int gfs2_statfs_i(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host *sc)
741 struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master;
742 struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
744 spin_lock(&sdp->sd_statfs_spin);
751 spin_unlock(&sdp->sd_statfs_spin);
782 int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host *sc)
797 error = gfs2_rindex_hold(sdp, &ri_gh);
801 rgd_next = gfs2_rgrpd_get_first(sdp);
858 * @sdp: the file system
865 static int gfs2_lock_fs_check_clean(struct gfs2_sbd *sdp,
876 error = gfs2_jindex_hold(sdp, &ji_gh);
880 list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
895 error = gfs2_glock_nq_init(sdp->sd_trans_gl, LM_ST_DEFERRED,
899 list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
928 * @sdp: the file system
937 int gfs2_freeze_fs(struct gfs2_sbd *sdp)
941 mutex_lock(&sdp->sd_freeze_lock);
943 if (!sdp->sd_freeze_count++) {
944 error = gfs2_lock_fs_check_clean(sdp, &sdp->sd_freeze_gh);
946 sdp->sd_freeze_count--;
949 mutex_unlock(&sdp->sd_freeze_lock);
956 * @sdp: the file system
964 void gfs2_unfreeze_fs(struct gfs2_sbd *sdp)
966 mutex_lock(&sdp->sd_freeze_lock);
968 if (sdp->sd_freeze_count && !--sdp->sd_freeze_count)
969 gfs2_glock_dq_uninit(&sdp->sd_freeze_gh);
971 mutex_unlock(&sdp->sd_freeze_lock);