/*
 * 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;
}

