patch-2.4.18 linux/fs/ntfs/support.h
Next file: linux/fs/partitions/check.c
Previous file: linux/fs/ntfs/support.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
Thu Jan 17 17:06:08 2002
- Orig file:
linux.orig/fs/ntfs/support.h
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/fs/ntfs/support.h linux/fs/ntfs/support.h
@@ -32,9 +32,39 @@
#define ntfs_free(ptr) kfree(ptr)
-#define ntfs_vmalloc(size) vmalloc_32(size)
+/**
+ * ntfs_vmalloc - allocate memory in multiples of pages
+ * @size number of bytes to allocate
+ *
+ * Allocates @size bytes of memory, rounded up to multiples of PAGE_SIZE and
+ * returns a pointer to the allocated memory.
+ *
+ * If there was insufficient memory to complete the request, return NULL.
+ */
+static inline void *ntfs_vmalloc(unsigned long size)
+{
+ if (size <= PAGE_SIZE) {
+ if (size) {
+ /* kmalloc() has per-CPU caches so if faster for now. */
+ return kmalloc(PAGE_SIZE, GFP_NOFS);
+ /* return (void *)__get_free_page(GFP_NOFS |
+ __GFP_HIGHMEM); */
+ }
+ BUG();
+ }
+ if (size >> PAGE_SHIFT < num_physpages)
+ return __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM, PAGE_KERNEL);
+ return NULL;
+}
-#define ntfs_vfree(ptr) vfree(ptr)
+static inline void ntfs_vfree(void *addr)
+{
+ if ((unsigned long)addr < VMALLOC_START) {
+ return kfree(addr);
+ /* return free_page((unsigned long)addr); */
+ }
+ vfree(addr);
+}
void ntfs_bzero(void *s, int n);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)