INT32 FsReadDir(struct inode *inode, DIR_ENTRY_T *dir_entry) { INT32 err; struct super_block *sb = inode->i_sb; FS_INFO_T *p_fs = &(EXFAT_SB(sb)->fs_info); if (dir_entry == NULL) return(FFS_ERROR); sm_P(&(fs_struct[p_fs->drv].v_sem)); err = ffsReadDir(inode, dir_entry); sm_V(&(fs_struct[p_fs->drv].v_sem)); return(err); }
/* FsReadDir : read a directory entry from the opened directory */ INT32 FsReadDir(struct inode *inode, DIR_ENTRY_T *dir_entry) { INT32 err; struct super_block *sb = inode->i_sb; FS_INFO_T *p_fs = &(EXFAT_SB(sb)->fs_info); /* check the validity of pointer parameters */ if (dir_entry == NULL) return(FFS_ERROR); /* acquire the lock for file system critical section */ sm_P(&(fs_struct[p_fs->drv].v_sem)); err = ffsReadDir(inode, dir_entry); /* release the lock for file system critical section */ sm_V(&(fs_struct[p_fs->drv].v_sem)); return(err); } /* end of FsReadDir */