PERFORCE change 165598 for review

Aditya Sarawgi truncs at FreeBSD.org
Sat Jul 4 17:25:40 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=165598

Change 165598 by truncs at aditya on 2009/07/04 17:25:25

	Cleanup. Preallocation is GPL'd and besides it lead to some problems while adding a journaling layer to it in linux so this scheme was 
	removed from ext2fs and a new reservation window based scheme was implemented. 

Affected files ...

.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#26 edit

Differences ...

==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#26 (text+ko) ====

@@ -136,56 +136,9 @@
                 ip->i_blocks += btodb(fs->e2fs_bsize);
                 ip->i_flag |= IN_CHANGE | IN_UPDATE;
                 *bnp = bno;
+		uprintf("Allocation of block successfull");
                 return (0);
         }
-
-
-#ifdef notused
-#ifdef EXT2_PREALLOCATE
-	/* To have a preallocation hit, we must
-	 * - have at least one block preallocated
-	 * - and our preferred block must have that block number or one below
-	 */
-        if (ip->i_prealloc_count &&
-            (bpref == ip->i_prealloc_block ||
-             bpref + 1 == ip->i_prealloc_block))
-        {
-                bno = ip->i_prealloc_block++;
-                ip->i_prealloc_count--;
-                /* ext2_debug ("preallocation hit (%lu/%lu).\n",
-                            ++alloc_hits, ++alloc_attempts); */
-
-		/* Linux gets, clears, and releases the buffer at this
-		   point - we don't have to that; we leave it to the caller
-		 */
-        } else {
-                ext2_discard_prealloc (ip);
-                /* ext2_debug ("preallocation miss (%lu/%lu).\n",
-                            alloc_hits, ++alloc_attempts); */
-                if (S_ISREG(ip->i_mode))
-                        bno = ext2_new_block
-                                (ITOV(ip)->v_mount, bpref,
-                                 &ip->i_prealloc_count,
-                                 &ip->i_prealloc_block);
-                else
-			bno = (int32_t)ext2_new_block(ITOV(ip)->v_mount, 
-					bpref, 0, 0);
-        }
-#else
-	bno = (int32_t)ext2_new_block(ITOV(ip)->v_mount, bpref, 0, 0);
-#endif
-
-	if (bno > 0) {
-		/* set next_alloc fields as done in block_getblk */
-		ip->i_next_alloc_block = lbn;
-		ip->i_next_alloc_goal = bno;
-
-		ip->i_blocks += btodb(size);
-		ip->i_flag |= IN_CHANGE | IN_UPDATE;
-		*bnp = bno;
-		return (0);
-	}
-#endif
 nospace:
 	ext2_fserr(fs, cred->cr_uid, "file system full");
 	uprintf("\n%s: write failed, file system is full\n", fs->e2fs_fsmnt);


More information about the p4-projects mailing list