mount(2) 로 reiserfs 마운트할때..
글쓴이: hongwoo / 작성시간: 화, 2005/03/15 - 10:49오전
제 hdd1이 현재 ntfs로 포맷이 되어있습니다.
다음 코드와 같이 마운트를 시도하고 파일 시스템이 reiserfs가 아니라면, 에러를 리턴하려고 합니다.
mount("/dev/hdd1", 'data", "reiserfs", 0, NULL);
그런데 이런식으로 하게되면 이놈이 ntfs도 잘 마운트를 하고 에러도 리턴되지 않고 있네요...
혹시 이와 같은 문제를 어떻게 처리할 지 아시는 분 도움주시면 감사하겠습니다.
Forums:
Re: mount(2) 로 reiserfs 마운트할때..
참고가 되련가 모르겠네요... kernel의 mount부분 처리 code입니다.
아래 보시면 type을 copy_mount_options() 에서 체크하는데 type이 valid한가만 채크하지 mount시킬 놈의 type하고 비교까지는 하지 않는 것 같네요... kernel을 수정하시거나 아니면 user plane에서 한번 걸러서 하셔야 겠습니다.
asmlinkage long sys_mount(char * dev_name, char * dir_name, char * type,
unsigned long flags, void * data)
{
int retval;
unsigned long data_page;
unsigned long type_page;
unsigned long dev_page;
char *dir_page;
retval = copy_mount_options (type, &type_page);
if (retval < 0)
return retval;
dir_page = getname(dir_name);
retval = PTR_ERR(dir_page);
if (IS_ERR(dir_page))
goto out1;
retval = copy_mount_options (dev_name, &dev_page);
if (retval < 0)
goto out2;
retval = copy_mount_options (data, &data_page);
if (retval < 0)
goto out3;
lock_kernel();
retval = do_mount((char*)dev_page, dir_page, (char*)type_page,
flags, (void*)data_page);
unlock_kernel();
free_page(data_page);
out3:
free_page(dev_page);
out2:
putname(dir_page);
out1:
free_page(type_page);
return retval;
}
댓글 달기