patch-1.3.7 linux/fs/isofs/dir.c
Next file: linux/fs/proc/inode.c
Previous file: linux/fs/filesystems.c
Back to the patch index
Back to the overall index
-  Lines: 20
 -  Date:
Wed Jul  5 11:27:08 1995
 -  Orig file: 
v1.3.6/linux/fs/isofs/dir.c
 -  Orig date: 
Fri Jun  9 12:08:41 1995
 
diff -u --recursive --new-file v1.3.6/linux/fs/isofs/dir.c linux/fs/isofs/dir.c
@@ -137,6 +137,19 @@
 		printk("Block, offset, f_pos: %x %x %x\n",
 		       block, offset, filp->f_pos);
 #endif
+		/* Next directory_record on next CDROM sector */
+		if (offset >= bufsize) {
+			brelse(bh);
+			offset = 0;
+			block = isofs_bmap(inode, (filp->f_pos) >> bufbits);
+			if (!block)
+				return 0;
+			bh = breada(inode->i_dev, block, bufsize, filp->f_pos, inode->i_size);
+			if (!bh)
+				return 0;
+			continue;
+		}
+
 		de = (struct iso_directory_record *) (bh->b_data + offset);
 		inode_number = (block << bufbits) + (offset & (bufsize - 1));
 
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this