#ifndef __LINUX_FILE_H #define __LINUX_FILE_H extern inline struct file * fget(unsigned long fd) { struct file * file = NULL; if (fd < NR_OPEN) { file = current->files->fd[fd]; if (file) file->f_count++; } return file; } extern void __fput(struct file *, struct inode *); extern inline void fput(struct file *file, struct inode *inode) { int count = file->f_count-1;
/* jeśli nie ma więcej odwołań na daną pozycję w tablicy plików */ if (!count) __fput(file, inode);
/* dokonaj aktualizacji licznika odwołań na pozycję w tablicy plików */ file->f_count = count; } #endif