aboutsummaryrefslogtreecommitdiffstats
path: root/resize_reiserfs/fe.c
blob: 5997dd248c5d244fb0df7974a2e9d9b2a087e5ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*
 * Copyright 2000-2004 by Hans Reiser, licensing governed by
 * reiserfsprogs/README
 */

#include "resize.h"

/* the front-end for kernel on-line resizer */
int resize_fs_online(char *devname, long long int blocks)
{
	struct mntent *mnt;
	char buf[40];

	/* Find the mount entry. */
	if ((mnt = misc_mntent(devname)) == NULL)
		die("resize_reiserfs: can't find mount entry\n");

	sprintf(buf, "resize=%lld", blocks);

	if (mount(mnt->mnt_fsname, mnt->mnt_dir, mnt->mnt_type,
		  (unsigned long)(MS_MGC_VAL << 16 | MS_REMOUNT), buf)) {
		die("resize_reiserfs: remount failed: %s\n", strerror(errno));
	}

	return 0;
}