경로명을 얻는 방법이나 주어진 inode에서 dentry
또는 struct file
을 알아야합니다.주어진 inode에서 pathname이나 dentry 또는 struct 파일을 얻는 방법은 무엇입니까?
경로 이름에서 struct file
을 얻기 위해 file_open
을 사용하고 있었지만 항상 커널 패닉을주었습니다. 내 inode 목록에서 inode를 pathname으로 비교하거나 디스크의 모든 inode를 비교하여 해당 경로명을 찾고 내 inode 목록과 비교할 방법이 필요합니다.
내 작업은 주어진 파일을 읽고 쓰는 것을 차단하는 시스템 호출을 만드는 것입니다. 다음을 구현합니다 : filp_open 함수에 의해 생성 된 inode를 잡은 시스템 호출에 대한 Path 매개 변수를 설정하십시오 (경로, O_CREAT, 00777) (이 작품)을 읽고 링크 된 목록에 추가하십시오. 그렇다면이 파일의 경로를 가져온 inode를 매개 변수로 사용하고, 그렇지 않으면 1을 반환하고 그렇지 않으면 0을 반환하는 함수를 만들었습니다. 이 함수를 open() 시스템 호출 내에 배치하지만 filp_open (path, FLAG, x) 다음에 filp_close()가 오면 다음 오류가 발생합니다. – Leonardo
O_CREAT FLAG = x = 00777 -> 커널 메모리가 곧 커널 부트를 채 웁니다. FLAG = 0 및 x = O_RDONLY -> 커널 부트시 커널 패닉 – Leonardo
아마이 설명으로 원래의 질문을 편집하는 편이 낫습니다. 주석 상자에 들어 맞는 내용을 작성하는 것은 대단히 어렵지 만 여전히 읽을 만합니다. :) – sarnold