~ubuntu-branches/ubuntu/edgy/xfsprogs/edgy

« back to all changes in this revision

Viewing changes to db/agfl.c

  • Committer: Bazaar Package Importer
  • Author(s): Nathan Scott
  • Date: 2004-07-28 21:11:38 UTC
  • Revision ID: james.westby@ubuntu.com-20040728211138-0v4pdnunnp7na5lm
Tags: 2.6.20-1
* New upstream release.
* Fix xfs_io segfault on non-XFS files.  (closes: #260470)
* Fix packaging botch, deleted files included.  (closes: #260491)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
3
 
 * 
 
2
 * Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
 
3
 *
4
4
 * This program is free software; you can redistribute it and/or modify it
5
5
 * under the terms of version 2 of the GNU General Public License as
6
6
 * published by the Free Software Foundation.
7
 
 * 
 
7
 *
8
8
 * This program is distributed in the hope that it would be useful, but
9
9
 * WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 
 * 
 
11
 *
12
12
 * Further, this software is distributed without any warranty that it is
13
13
 * free of the rightful claim of any third person regarding infringement
14
14
 * or the like.  Any license provided herein, whether implied or
15
15
 * otherwise, applies only to this software file.  Patent licenses, if
16
16
 * any, provided herein do not apply to combinations of this program with
17
17
 * other software, or any other product whatsoever.
18
 
 * 
 
18
 *
19
19
 * You should have received a copy of the GNU General Public License along
20
20
 * with this program; if not, write the Free Software Foundation, Inc., 59
21
21
 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
22
 
 * 
 
22
 *
23
23
 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24
24
 * Mountain View, CA  94043, or:
25
 
 * 
26
 
 * http://www.sgi.com 
27
 
 * 
28
 
 * For further information regarding this notice, see: 
29
 
 * 
 
25
 *
 
26
 * http://www.sgi.com
 
27
 *
 
28
 * For further information regarding this notice, see:
 
29
 *
30
30
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
31
31
 */
32
32
 
33
 
#include <libxfs.h>
 
33
#include <xfs/libxfs.h>
34
34
#include "agfl.h"
35
35
#include "command.h"
36
 
#include "data.h"
37
36
#include "type.h"
38
37
#include "faddr.h"
39
38
#include "fprint.h"
41
40
#include "io.h"
42
41
#include "bit.h"
43
42
#include "output.h"
44
 
#include "mount.h"
 
43
#include "init.h"
45
44
 
 
45
static int agfl_bno_size(void *obj, int startoff);
46
46
static int agfl_f(int argc, char **argv);
47
47
static void agfl_help(void);
48
48
 
49
49
static const cmdinfo_t agfl_cmd =
50
 
        { "agfl", NULL, agfl_f, 0, 1, 1, "[agno]", 
 
50
        { "agfl", NULL, agfl_f, 0, 1, 1, "[agno]",
51
51
          "set address to agfl block", agfl_help };
52
52
 
53
 
const field_t   agfl_hfld[] = {
54
 
        { "", FLDT_AGFL, OI(0), C1, 0, TYP_NONE },
 
53
const field_t   agfl_hfld[] = { {
 
54
        "", FLDT_AGFL, OI(0), C1, 0, TYP_NONE, },
55
55
        { NULL }
56
56
};
57
57
 
58
58
#define OFF(f)  bitize(offsetof(xfs_agfl_t, agfl_ ## f))
59
59
const field_t   agfl_flds[] = {
60
 
        { "bno", FLDT_AGBLOCKNZ, OI(OFF(bno)), CI(XFS_AGFL_SIZE), FLD_ARRAY,
61
 
          TYP_DATA },
 
60
        { "bno", FLDT_AGBLOCKNZ, OI(OFF(bno)), agfl_bno_size,
 
61
          FLD_ARRAY|FLD_COUNT, TYP_DATA },
62
62
        { NULL }
63
63
};
64
64
 
 
65
static int
 
66
agfl_bno_size(
 
67
        void    *obj,
 
68
        int     startoff)
 
69
{
 
70
        return XFS_AGFL_SIZE(mp);
 
71
}
 
72
 
65
73
static void
66
74
agfl_help(void)
67
75
{
73
81
"\n"
74
82
" agfl 5"
75
83
"\n"
76
 
" Located in the 4th 512 byte block of each allocation group,\n"
 
84
" Located in the fourth sector of each allocation group,\n"
77
85
" the agfl freelist for internal btree space allocation is maintained\n"
78
 
" for each allocation group.  This acts as a reserved pool of space\n" 
 
86
" for each allocation group.  This acts as a reserved pool of space\n"
79
87
" separate from the general filesystem freespace (not used for user data).\n"
80
88
"\n"
81
89
);
100
108
        } else if (cur_agno == NULLAGNUMBER)
101
109
                cur_agno = 0;
102
110
        ASSERT(typtab[TYP_AGFL].typnm == TYP_AGFL);
103
 
        set_cur(&typtab[TYP_AGFL], XFS_AG_DADDR(mp, cur_agno, XFS_AGFL_DADDR),
104
 
                1, DB_RING_ADD, NULL);
 
111
        set_cur(&typtab[TYP_AGFL],
 
112
                XFS_AG_DADDR(mp, cur_agno, XFS_AGFL_DADDR(mp)),
 
113
                XFS_FSS_TO_BB(mp, 1), DB_RING_ADD, NULL);
105
114
        return 0;
106
115
}
107
116