SFUSE_Documentation
로딩중...
검색중...
일치하는것 없음
inode.c 파일 참조
#include "inode.h"
#include <errno.h>
#include <unistd.h>
inode.c에 대한 include 의존 그래프

이 파일의 소스 코드 페이지로 가기

함수

static off_t inode_offset (const struct sfuse_superblock *sb, uint32_t ino)
 아이노드 테이블 내 특정 아이노드의 디스크 내 바이트 오프셋을 계산
int inode_load (int fd, const struct sfuse_superblock *sb, uint32_t ino, struct sfuse_inode *out)
 디스크에서 지정한 아이노드 번호의 아이노드 구조체를 읽어 옴
int inode_sync (int fd, const struct sfuse_superblock *sb, uint32_t ino, const struct sfuse_inode *in)
 아이노드 구조체를 디스크에 동기화(쓰기)함

함수 문서화

◆ inode_load()

int inode_load ( int fd,
const struct sfuse_superblock * sb,
uint32_t ino,
struct sfuse_inode * out )

디스크에서 지정한 아이노드 번호의 아이노드 구조체를 읽어 옴

디스크 이미지에서 아이노드를 읽어 구조체에 로드

매개변수
fd디스크 이미지 파일 디스크립터
sb슈퍼블록 포인터
ino읽을 아이노드 번호
out읽어들인 아이노드 데이터를 저장할 구조체 포인터
반환값
성공 시 0, 실패 시 음수(errno 또는 -EIO)

inode.c 파일의 32 번째 라인에서 정의되었습니다.

33 {
34 off_t offs = inode_offset(sb, ino);
35 ssize_t n = pread(fd, out, sizeof(struct sfuse_inode), offs);
36 if (n < 0) {
37 return -errno;
38 }
39 return (n == sizeof(struct sfuse_inode) ? 0 : -EIO);
40}
static off_t inode_offset(const struct sfuse_superblock *sb, uint32_t ino)
아이노드 테이블 내 특정 아이노드의 디스크 내 바이트 오프셋을 계산
Definition inode.c:14
디스크에 저장되는 아이노드 구조체
Definition inode.h:22
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ inode_offset()

off_t inode_offset ( const struct sfuse_superblock * sb,
uint32_t ino )
static

아이노드 테이블 내 특정 아이노드의 디스크 내 바이트 오프셋을 계산

매개변수
sb슈퍼블록 포인터
ino오프셋을 계산할 아이노드 번호
반환값
디스크 이미지 내 바이트 단위 오프셋 값

inode.c 파일의 14 번째 라인에서 정의되었습니다.

14 {
15 uint32_t inode_index = ino;
16 off_t block_index =
17 sb->inode_table_start + inode_index / SFUSE_INODES_PER_BLOCK;
18 off_t offset_within_block =
19 (inode_index % SFUSE_INODES_PER_BLOCK) * sizeof(struct sfuse_inode);
20 return block_index * SFUSE_BLOCK_SIZE + offset_within_block;
21}
#define SFUSE_INODES_PER_BLOCK
한 블록에 담을 수 있는 아이노드 수
Definition inode.h:12
uint32_t inode_table_start
Definition super.h:59
#define SFUSE_BLOCK_SIZE
블록 크기 (바이트 단위)
Definition super.h:20
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ inode_sync()

int inode_sync ( int fd,
const struct sfuse_superblock * sb,
uint32_t ino,
const struct sfuse_inode * in )

아이노드 구조체를 디스크에 동기화(쓰기)함

아이노드 구조체 내용을 디스크 이미지에 동기화

매개변수
fd디스크 이미지 파일 디스크립터
sb슈퍼블록 포인터
ino저장할 아이노드 번호
in디스크에 기록할 아이노드 데이터 구조체 포인터
반환값
성공 시 0, 실패 시 음수(errno 또는 -EIO)

inode.c 파일의 51 번째 라인에서 정의되었습니다.

52 {
53 off_t offs = inode_offset(sb, ino);
54 ssize_t n = pwrite(fd, in, sizeof(struct sfuse_inode), offs);
55 if (n < 0) {
56 return -errno;
57 }
58 return (n == sizeof(struct sfuse_inode) ? 0 : -EIO);
59}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.: