Re: [PATCH 2/4] VFS: swap do_ioctl and vfs_ioctl names
On Tue, 30 Oct 2007 09:56:53 + Christoph Hellwig wrote: On Sun, Oct 28, 2007 at 08:40:56PM -0400, Erez Zadok wrote: +/** + * vfs_ioctl - call filesystem specific ioctl methods + * + * @filp: [in] open file to invoke ioctl method on + * @cmd: [in] ioctl command to execute + * @arg: [in/out] command-specific argument for ioctl I've never seen these in/out annotations and doubt they're valid in kerneldoc. Randy? They are just treated as part of the parameter explanation text. I don't see any problem with them. + * Invokes filesystem specific -unlock_ioctl, if one exists; otherwise unlocked_ioctl --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] VFS: swap do_ioctl and vfs_ioctl names
On Tue, 30 Oct 2007 17:14:36 + Christoph Hellwig wrote: On Tue, Oct 30, 2007 at 08:22:40AM -0700, Randy Dunlap wrote: They are just treated as part of the parameter explanation text. I don't see any problem with them. Well, it's completely inconsistant with any other kerneldoc.. True. and it has an advantage. --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] VFS: swap do_ioctl and vfs_ioctl names
On Sun, 28 Oct 2007 20:40:56 -0400 Erez Zadok wrote: Rename old vfs_ioctl to do_ioctl, because the comment above it clearly indicates that it is an internal function not to be exported to modules; therefore it should have a more traditional do_XXX name. The new do_ioctl is exported in fs.h but not to modules. Rename the old do_ioctl to vfs_ioctl because the names vfs_XXX should preferably be reserved to callable VFS functions which modules may call, as many other vfs_XXX functions already do. Export the new vfs_ioctl to GPL modules so others can use it (including Unionfs and eCryptfs). Add DocBook for new vfs_ioctl. Signed-off-by: Erez Zadok [EMAIL PROTECTED] --- fs/compat_ioctl.c |2 +- fs/ioctl.c | 30 ++ include/linux/fs.h |3 ++- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/fs/ioctl.c b/fs/ioctl.c index 652cacf..34e3f58 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -16,8 +16,21 @@ #include asm/ioctls.h -static long do_ioctl(struct file *filp, unsigned int cmd, - unsigned long arg) +/** + * vfs_ioctl - call filesystem specific ioctl methods + * No blank line allowed in kernel-doc between function name and its parameters. + * @filp: [in] open file to invoke ioctl method on + * @cmd: [in] ioctl command to execute + * @arg: [in/out] command-specific argument for ioctl + * + * Invokes filesystem specific -unlock_ioctl, if one exists; otherwise + * invokes * filesystem specific -ioctl method. If neither method exists, + * returns -ENOTTY. + * + * Returns 0 on success, -errno on error. + */ +long vfs_ioctl(struct file *filp, unsigned int cmd, +unsigned long arg) { int error = -ENOTTY; diff --git a/include/linux/fs.h b/include/linux/fs.h index b3ec4a4..c0c5d36 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1924,7 +1924,8 @@ extern int vfs_stat_fd(int dfd, char __user *, struct kstat *); extern int vfs_lstat_fd(int dfd, char __user *, struct kstat *); extern int vfs_fstat(unsigned int, struct kstat *); -extern int vfs_ioctl(struct file *, unsigned int, unsigned int, unsigned long); +extern long vfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); +extern int do_ioctl(struct file *, unsigned int, unsigned int, unsigned long); Use/keep parameter names, please. That is preferred. extern void get_filesystem(struct file_system_type *fs); extern void put_filesystem(struct file_system_type *fs); -- 1.5.2.2 - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] fs menu: small reorg.
From: Randy Dunlap [EMAIL PROTECTED] - move minixfs and ROMfs to the Miscellaneous filesystems menu - move DNOTIFY config symbol so that it is adjacent to INOTIFY instead of being split by the QUOTA config options - add some 'endif' annotations - remove some whitespace (extra blank lines) Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/Kconfig | 93 ++--- 1 file changed, 46 insertions(+), 47 deletions(-) --- linux-2.6.23-git13.orig/fs/Kconfig +++ linux-2.6.23-git13/fs/Kconfig @@ -458,40 +458,18 @@ config OCFS2_DEBUG_MASKLOG This option will enlarge your kernel, but it allows debugging of ocfs2 filesystem issues. -config MINIX_FS - tristate Minix fs support - help - Minix is a simple operating system used in many classes about OS's. - The minix file system (method to organize files on a hard disk - partition or a floppy disk) was the original file system for Linux, - but has been superseded by the second extended file system ext2fs. - You don't want to use the minix file system on your hard disk - because of certain built-in restrictions, but it is sometimes found - on older Linux floppy disks. This option will enlarge your kernel - by about 28 KB. If unsure, say N. - - To compile this file system support as a module, choose M here: the - module will be called minix. Note that the file system of your root - partition (the one containing the directory /) cannot be compiled as - a module. - -config ROMFS_FS - tristate ROM file system support - ---help--- - This is a very small read-only file system mainly intended for - initial ram disks of installation disks, but it could be used for - other read-only media as well. Read - file:Documentation/filesystems/romfs.txt for details. - - To compile this file system support as a module, choose M here: the - module will be called romfs. Note that the file system of your - root partition (the one containing the directory /) cannot be a - module. +endif # BLOCK - If you don't know whether you need it, then you don't need it: - answer N. +config DNOTIFY + bool Dnotify support + default y + help + Dnotify is a directory-based per-fd file change notification system + that uses signals to communicate events to user-space. There exist + superior alternatives, but some applications may still rely on + dnotify. -endif + If unsure, say Y. config INOTIFY bool Inotify file change notification support @@ -572,17 +550,6 @@ config QUOTACTL depends on XFS_QUOTA || QUOTA default y -config DNOTIFY - bool Dnotify support - default y - help - Dnotify is a directory-based per-fd file change notification system - that uses signals to communicate events to user-space. There exist - superior alternatives, but some applications may still rely on - dnotify. - - If unsure, say Y. - config AUTOFS_FS tristate Kernel automounter support help @@ -708,7 +675,7 @@ config UDF_NLS depends on (UDF_FS=m NLS) || (UDF_FS=y NLS=y) endmenu -endif +endif # BLOCK if BLOCK menu DOS/FAT/NT Filesystems @@ -891,7 +858,7 @@ config NTFS_RW It is perfectly safe to say N here. endmenu -endif +endif # BLOCK menu Pseudo filesystems @@ -1412,6 +1379,24 @@ config VXFS_FS To compile this as a module, choose M here: the module will be called freevxfs. If unsure, say N. +config MINIX_FS + tristate Minix file system support + depends on BLOCK + help + Minix is a simple operating system used in many classes about OS's. + The minix file system (method to organize files on a hard disk + partition or a floppy disk) was the original file system for Linux, + but has been superseded by the second extended file system ext2fs. + You don't want to use the minix file system on your hard disk + because of certain built-in restrictions, but it is sometimes found + on older Linux floppy disks. This option will enlarge your kernel + by about 28 KB. If unsure, say N. + + To compile this file system support as a module, choose M here: the + module will be called minix. Note that the file system of your root + partition (the one containing the directory /) cannot be compiled as + a module. + config HPFS_FS tristate OS/2 HPFS file system support @@ -1429,7 +1414,6 @@ config HPFS_FS module will be called hpfs. If unsure, say N. - config QNX4FS_FS tristate QNX4 file system support (read only) depends on BLOCK @@ -1456,6 +1440,22 @@ config QNX4FS_RW It's currently
[PATCH 4/4] docbook: fix filesystems content
From: Randy Dunlap [EMAIL PROTECTED] Fix filesystems docbook warnings. Warning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter 'name' Warning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter 'mode' Warning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter 'parent' Warning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter 'value' Warning(linux-2.6.23-git8//include/linux/jbd.h:404): No description found for parameter 'h_lockdep_map' Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/debugfs/file.c | 41 +++-- include/linux/jbd.h |1 + 2 files changed, 36 insertions(+), 6 deletions(-) --- linux-2.6.23-git8.orig/fs/debugfs/file.c +++ linux-2.6.23-git8/fs/debugfs/file.c @@ -227,15 +227,24 @@ DEFINE_SIMPLE_ATTRIBUTE(fops_x16, debugf DEFINE_SIMPLE_ATTRIBUTE(fops_x32, debugfs_u32_get, debugfs_u32_set, 0x%08llx\n); -/** - * debugfs_create_x8 - create a debugfs file that is used to read and write an unsigned 8-bit value - * debugfs_create_x16 - create a debugfs file that is used to read and write an unsigned 16-bit value - * debugfs_create_x32 - create a debugfs file that is used to read and write an unsigned 32-bit value +/* + * debugfs_create_x{8,16,32} - create a debugfs file that is used to read and write an unsigned {8,16,32}-bit value * - * These functions are exactly the same as the above functions, (but use a hex - * output for the decimal challenged) for details look at the above unsigned + * These functions are exactly the same as the above functions (but use a hex + * output for the decimal challenged). For details look at the above unsigned * decimal functions. */ + +/** + * debugfs_create_x8 - create a debugfs file that is used to read and write an unsigned 8-bit value + * @name: a pointer to a string containing the name of the file to create. + * @mode: the permission that the file should have + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is %NULL, then the + * file will be created in the root of the debugfs filesystem. + * @value: a pointer to the variable that the file should read to and write + * from. + */ struct dentry *debugfs_create_x8(const char *name, mode_t mode, struct dentry *parent, u8 *value) { @@ -243,6 +252,16 @@ struct dentry *debugfs_create_x8(const c } EXPORT_SYMBOL_GPL(debugfs_create_x8); +/** + * debugfs_create_x16 - create a debugfs file that is used to read and write an unsigned 16-bit value + * @name: a pointer to a string containing the name of the file to create. + * @mode: the permission that the file should have + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is %NULL, then the + * file will be created in the root of the debugfs filesystem. + * @value: a pointer to the variable that the file should read to and write + * from. + */ struct dentry *debugfs_create_x16(const char *name, mode_t mode, struct dentry *parent, u16 *value) { @@ -250,6 +269,16 @@ struct dentry *debugfs_create_x16(const } EXPORT_SYMBOL_GPL(debugfs_create_x16); +/** + * debugfs_create_x32 - create a debugfs file that is used to read and write an unsigned 32-bit value + * @name: a pointer to a string containing the name of the file to create. + * @mode: the permission that the file should have + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is %NULL, then the + * file will be created in the root of the debugfs filesystem. + * @value: a pointer to the variable that the file should read to and write + * from. + */ struct dentry *debugfs_create_x32(const char *name, mode_t mode, struct dentry *parent, u32 *value) { --- linux-2.6.23-git8.orig/include/linux/jbd.h +++ linux-2.6.23-git8/include/linux/jbd.h @@ -372,6 +372,7 @@ struct jbd_revoke_table_s; * @h_sync: flag for sync-on-close * @h_jdata: flag to force data journaling * @h_aborted: flag indicating fatal error on handle + * @h_lockdep_map: lockdep info for debugging lock problems **/ /* Docbook can't yet cope with the bit fields, but will leave the documentation - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH]fix VM_CAN_NONLINEAR check in sys_remap_file_pages
On Mon, 8 Oct 2007 10:04:56 -0700 Andrew Morton wrote: On Mon, 8 Oct 2007 19:45:08 +0800 Yan Zheng [EMAIL PROTECTED] wrote: Hi all The test for VM_CAN_NONLINEAR always fails Signed-off-by: Yan Zheng[EMAIL PROTECTED] diff -ur linux-2.6.23-rc9/mm/fremap.c linux/mm/fremap.c --- linux-2.6.23-rc9/mm/fremap.c2007-10-07 15:03:33.0 +0800 +++ linux/mm/fremap.c 2007-10-08 19:33:44.0 +0800 @@ -160,7 +160,7 @@ if (vma-vm_private_data !(vma-vm_flags VM_NONLINEAR)) goto out; - if (!vma-vm_flags VM_CAN_NONLINEAR) + if (!(vma-vm_flags VM_CAN_NONLINEAR)) goto out; if (end = start || start vma-vm_start || end vma-vm_end) Lovely. From this we can deduce that nobody has run remap_file_pages() since 2.6.23-rc1 and that nobody (including the developer who made that change) ran it while that change was in -mm. I've run rmap-test with -M (use remap_file_pages) and remap-test from ext3-tools, but not remap_file_pages for some reason. I'll now add remap_file_pages soon. Maybe those other 2 tests aren't strong enough (?). Or maybe they don't return a non-0 exit status even when they fail... (I'll check.) I'm surprise that LTP doesn't have any remap_file_pages() tests. quick grep didn't find any for me. Have you runtime tested this change? Thanks. --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/32] Add an ERR_CAST() macro to complement ERR_PTR and co. [try #2]
On Thu, 04 Oct 2007 16:56:07 +0100 David Howells wrote: Add an ERR_CAST() macro to complement ERR_PTR and co. for the purposes of casting an error entyped as one pointer type to an error of another pointer type whilst making it explicit as to what is going on. This provides a replacement for the ERR_PTR(PTR_ERR(p)) construct. Signed-off-by: David Howells [EMAIL PROTECTED] --- include/linux/err.h | 12 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/include/linux/err.h b/include/linux/err.h index 1ab1d44..e810ca4 100644 --- a/include/linux/err.h +++ b/include/linux/err.h @@ -34,6 +34,18 @@ static inline long IS_ERR(const void *ptr) return IS_ERR_VALUE((unsigned long)ptr); } +/** + * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type + * ptr: The pointer to cast. @ptr: + * + * Explicitly cast an error-valued pointer to another pointer type in such a + * way as to make it clear that's what's going on. + */ +static inline void *ERR_CAST(const void *ptr) +{ + return (void *) ptr; +} + #endif #endif /* _LINUX_ERR_H */ --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 19/19] exportfs: update documentation
On Fri, 14 Sep 2007 13:49:28 +0200 [EMAIL PROTECTED] wrote: typos only below: Update deocumentation to the current state of affairs. Remove duplicated method descruptions in exportfs.h and point to Documentation/filesystems/ Exporting instead. Add a little file header comment in expfs.c describing what's going on and mentioning Neils and my copyright [1]. [1] Neil, in case you want a different/additional attribution just change the patch in your queue to reflect the preferred version. Signed-off-by: Christoph Hellwig [EMAIL PROTECTED] Index: linux-2.6/Documentation/filesystems/Exporting === --- linux-2.6.orig/Documentation/filesystems/Exporting2007-03-16 15:10:54.0 +0100 +++ linux-2.6/Documentation/filesystems/Exporting 2007-03-16 17:11:50.0 +0100 + encode_fh (optinonal) (optional) +Takes a dentry and creates a filehandle fragment which can later be used +to find/create a dentry for the same object. The default implementation +creates a filehandle fragment that encodes a 32bit inode and generation +number for the inode encoded, and if nessecary the same information for necessary +the parent. + + fh_to_dentry (mandatory) +Given a filehandle fragment, this should find the implied object and +create a dentry for it (possibly with d_alloc_anon). + + fh_to_parent (optional but strongly recommended) +Given a filehandle fragment, this should find the parent of the +implied object and create a dentry for it (possibly with d_alloc_anon). +May simplify fail if the filehandle fragment is too small.\ simply (?) + + get_parent (optional but strongly recommended) +When given a dentry for a directory, this should return a dentry for +the parent. Quite possibly the parent dentry will have been allocated +by d_alloc_anon. The default get_parent function just returns an error +so any filehandle lookup that requires finding a parent will fail. +-lookup(..) is *not* used as a default as it can leave .. entries +in the dcache which are too messy to work with. Index: linux-2.6/fs/exportfs/expfs.c === --- linux-2.6.orig/fs/exportfs/expfs.c2007-03-16 17:06:10.0 +0100 +++ linux-2.6/fs/exportfs/expfs.c 2007-03-16 23:45:14.0 +0100 @@ -1,4 +1,13 @@ - +/* + * Copyright (C) Neil Brown 2002 + * Copyright (C) Christoph Hellwig 2007 + * + * This file contains the code mapping from inodes to NFS file handles, + * and for mapping back from file handles to dentries. + * + * For details on why we doo all the strange and hairy things in here do + * take a look at Documentation/filesystems/Exporting. + */ #include linux/exportfs.h #include linux/fs.h #include linux/file.h --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: -mm merge plans for 2.6.23
On Wed, 11 Jul 2007 10:21:03 -0700 Andrew Morton wrote: On Wed, 11 Jul 2007 12:39:42 +0100 David Woodhouse [EMAIL PROTECTED] wrote: On Wed, 2007-07-11 at 13:35 +0200, Christoph Hellwig wrote: On Tue, Jul 10, 2007 at 01:31:52AM -0700, Andrew Morton wrote: romfs-printk-format-warnings.patch NACK on this one. The rest of it is nacked anyway, until we unify the point and get_unmapped_area methods of the MTD API. Methinks you meant nommu-make-it-possible-for-romfs-to-use-mtd-devices.patch, not romfs-printk-format-warnings.patch. I'll drop nommu-make-it-possible-for-romfs-to-use-mtd-devices.patch, thamks. Thanks. I was certainly getting confused. --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] unionfs section mismatch
From: Randy Dunlap [EMAIL PROTECTED] Fix section marker in header file: WARNING: fs/unionfs/unionfs.o(.init.text+0x56): Section mismatch: reference to .exit.text:stop_sioq (between 'init_module' and 'init_sioq') Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/unionfs/sioq.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.22-rc4-mm1.orig/fs/unionfs/sioq.h +++ linux-2.6.22-rc4-mm1/fs/unionfs/sioq.h @@ -76,7 +76,7 @@ struct sioq_args { /* Extern definitions for SIOQ functions */ extern int __init init_sioq(void); -extern __exit void stop_sioq(void); +extern void stop_sioq(void); extern void run_sioq(work_func_t func, struct sioq_args *args); /* Extern definitions for our privilege escalation helpers */ - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [nameidata 2/2] Pass no useless nameidata to the create, lookup, and permission IOPs
On Mon, 16 Apr 2007 18:29:20 +0200 Andreas Gruenbacher wrote: Here is a patch with request for comment. --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -14,21 +14,39 @@ struct open_intent { enum { MAX_NESTED_LINKS = 8 }; +/** Please don't use the kernel-doc begin-marker /** when the comment block isn't in kernel-doc format. + * Fields shared between nameidata and nameidata2 -- nameidata2 could + * be embedded in nameidata, but then the vfs code would become + * cluttered with dereferences. + */ +#define __NAMEIDATA2 \ + struct dentry *dentry;\ + struct vfsmount *mnt; \ + unsigned intflags; \ + \ + union { \ + struct open_intent open;\ + } intent; + --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [nameidata 2/2] Pass no useless nameidata to the create, lookup, and permission IOPs
Andreas Gruenbacher wrote: On Monday 16 April 2007 18:42, Randy Dunlap wrote: Please don't use the kernel-doc begin-marker /** when the comment block isn't in kernel-doc format. Sigh, kernel-doc should improve things, not get in the way ... Well, I see it as sort of a language that is embedded in C source code. But what are you suggesting? -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Interface for the new fallocate() system call
On Thu, 5 Apr 2007 16:56:19 +0530 Amit K. Arora wrote: On Fri, Mar 30, 2007 at 02:14:17AM -0500, Jakub Jelinek wrote: Wouldn't int fallocate(loff_t offset, loff_t len, int fd, int mode) work on both s390 and ppc/arm? glibc will certainly wrap it and reorder the arguments as needed, so there is no need to keep fd first. This should work on all the platforms. The only concern I can think of here is the convention being followed till now, where all the entities on which the action has to be performed by the kernel (say fd, file/device name, pid etc.) is the first argument of the system call. If we can live with the small exception here, fine. Or else, we may have to implement the int fd, int mode, loff_t offset, loff_t len as the layout of arguments here. I think only s390 will have a problem with this, and we can think of a workaround for it (may be similar to what ARM did to implement sync_file_range() system call) : asmlinkage long sys_s390_fallocate(int fd, loff_t offset, loff_t len, int mode) { return sys_fallocate(fd, offset, len, mode); } To me both the approaches look slightly unconventional. But, we need to compromise somewhere to make things work on all the platforms. Any thoughts on which one of the above should we finalize on ? Thanks! If s390 can work around the calling order that easily, I certainly prefer the more conventional ordering of: int fd, int mode, loff_t offset, loff_t len --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] unionfs: sioq not __exit
From: Randy Dunlap [EMAIL PROTECTED] stop_sioq() is called from both __init and __exit functions, so it shouldn't be marked __exit. Reported on the kernelnewbies mailing list, but no patch offered there. Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/unionfs/sioq.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.21-rc3-mm2.orig/fs/unionfs/sioq.c +++ linux-2.6.21-rc3-mm2/fs/unionfs/sioq.c @@ -40,7 +40,7 @@ int __init init_sioq(void) return err; } -void __exit stop_sioq(void) +void stop_sioq(void) { if (superio_workqueue) destroy_workqueue(superio_workqueue); - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] ROMFS: printk format warnings
From: Randy Dunlap [EMAIL PROTECTED] Field width and precision must be of type int. fs/romfs/super.c:513: warning: field width should have type 'int', but argument 2 has type 'size_t' fs/romfs/super.c:513: warning: field precision should have type 'int', but argument 3 has type 'size_t' Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/romfs/super.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.21-rc3-mm2.orig/fs/romfs/super.c +++ linux-2.6.21-rc3-mm2/fs/romfs/super.c @@ -510,7 +510,7 @@ static int romfs_fill_super(struct super len = strnlen(rsb-name, ROMFS_MAXFN); if (!silent) printk(ROMFS: Mounting image '%*.*s' through %s\n, - len, len, rsb-name, storage); + (int)len, (int)len, rsb-name, storage); kfree(rsb); rsb = NULL; - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] reiserfs: proc support requires PROC_FS
From: Randy Dunlap [EMAIL PROTECTED] REISER_FS /proc option needs to depend on PROC_FS. fs/reiserfs/procfs.c: In function 'show_super': fs/reiserfs/procfs.c:134: error: 'reiserfs_proc_info_data_t' has no member named 'max_hash_collisions' fs/reiserfs/procfs.c:134: error: 'reiserfs_proc_info_data_t' has no member named 'breads' fs/reiserfs/procfs.c:135: error: 'reiserfs_proc_info_data_t' has no member named 'bread_miss' fs/reiserfs/procfs.c:135: error: 'reiserfs_proc_info_data_t' has no member named 'search_by_key' fs/reiserfs/procfs.c:136: error: 'reiserfs_proc_info_data_t' has no member named 'search_by_key_fs_changed' fs/reiserfs/procfs.c:136: error: 'reiserfs_proc_info_data_t' has no member named 'search_by_key_restarted' fs/reiserfs/procfs.c:137: error: 'reiserfs_proc_info_data_t' has no member named 'insert_item_restarted' fs/reiserfs/procfs.c:137: error: 'reiserfs_proc_info_data_t' has no member named 'paste_into_item_restarted' fs/reiserfs/procfs.c:138: error: 'reiserfs_proc_info_data_t' has no member named 'cut_from_item_restarted' fs/reiserfs/procfs.c:139: error: 'reiserfs_proc_info_data_t' has no member named 'delete_solid_item_restarted' fs/reiserfs/procfs.c:139: error: 'reiserfs_proc_info_data_t' has no member named 'delete_item_restarted' fs/reiserfs/procfs.c:140: error: 'reiserfs_proc_info_data_t' has no member named 'leaked_oid' fs/reiserfs/procfs.c:140: error: 'reiserfs_proc_info_data_t' has no member named 'leaves_removable' fs/reiserfs/procfs.c: In function 'show_per_level': fs/reiserfs/procfs.c:184: error: 'reiserfs_proc_info_data_t' has no member named 'balance_at' fs/reiserfs/procfs.c:185: error: 'reiserfs_proc_info_data_t' has no member named 'sbk_read_at' fs/reiserfs/procfs.c:186: error: 'reiserfs_proc_info_data_t' has no member named 'sbk_fs_changed' fs/reiserfs/procfs.c:187: error: 'reiserfs_proc_info_data_t' has no member named 'sbk_restarted' fs/reiserfs/procfs.c:188: error: 'reiserfs_proc_info_data_t' has no member named 'free_at' fs/reiserfs/procfs.c:189: error: 'reiserfs_proc_info_data_t' has no member named 'items_at' fs/reiserfs/procfs.c:190: error: 'reiserfs_proc_info_data_t' has no member named 'can_node_be_removed' fs/reiserfs/procfs.c:191: error: 'reiserfs_proc_info_data_t' has no member named 'lnum' fs/reiserfs/procfs.c:192: error: 'reiserfs_proc_info_data_t' has no member named 'rnum' fs/reiserfs/procfs.c:193: error: 'reiserfs_proc_info_data_t' has no member named 'lbytes' fs/reiserfs/procfs.c:194: error: 'reiserfs_proc_info_data_t' has no member named 'rbytes' fs/reiserfs/procfs.c:195: error: 'reiserfs_proc_info_data_t' has no member named 'get_neighbors' fs/reiserfs/procfs.c:196: error: 'reiserfs_proc_info_data_t' has no member named 'get_neighbors_restart' fs/reiserfs/procfs.c:197: error: 'reiserfs_proc_info_data_t' has no member named 'need_l_neighbor' fs/reiserfs/procfs.c:197: error: 'reiserfs_proc_info_data_t' has no member named 'need_r_neighbor' fs/reiserfs/procfs.c: In function 'show_bitmap': fs/reiserfs/procfs.c:224: error: 'reiserfs_proc_info_data_t' has no member named 'free_block' fs/reiserfs/procfs.c:225: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:226: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:227: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:228: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:229: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:230: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c:230: error: 'reiserfs_proc_info_data_t' has no member named 'scan_bitmap' fs/reiserfs/procfs.c: In function 'show_journal': fs/reiserfs/procfs.c:384: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:385: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:386: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:387: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:388: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:389: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:390: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:391: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:392: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:393: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:394: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:395: error: 'reiserfs_proc_info_data_t' has no member named 'journal' fs/reiserfs/procfs.c:395: error
[PATCH] dlm/gfs2: indent help text
From: Randy Dunlap [EMAIL PROTECTED] Indent help text as expected. Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/dlm/Kconfig | 16 fs/gfs2/Kconfig | 47 +++ 2 files changed, 31 insertions(+), 32 deletions(-) --- linux-2620-rc6.orig/fs/dlm/Kconfig +++ linux-2620-rc6/fs/dlm/Kconfig @@ -7,17 +7,17 @@ config DLM select CONFIGFS_FS select IP_SCTP if DLM_SCTP help - A general purpose distributed lock manager for kernel or userspace - applications. + A general purpose distributed lock manager for kernel or userspace + applications. choice prompt Select DLM communications protocol depends on DLM default DLM_TCP help - The DLM Can use TCP or SCTP for it's network communications. - SCTP supports multi-homed operations whereas TCP doesn't. - However, SCTP seems to have stability problems at the moment. + The DLM Can use TCP or SCTP for it's network communications. + SCTP supports multi-homed operations whereas TCP doesn't. + However, SCTP seems to have stability problems at the moment. config DLM_TCP bool TCP/IP @@ -31,8 +31,8 @@ config DLM_DEBUG bool DLM debugging depends on DLM help - Under the debugfs mount point, the name of each lockspace will - appear as a file in the dlm directory. The output is the - list of resource and locks the local node knows about. + Under the debugfs mount point, the name of each lockspace will + appear as a file in the dlm directory. The output is the + list of resource and locks the local node knows about. endmenu --- linux-2620-rc6.orig/fs/gfs2/Kconfig +++ linux-2620-rc6/fs/gfs2/Kconfig @@ -4,33 +4,33 @@ config GFS2_FS select FS_POSIX_ACL select CRC32 help - A cluster filesystem. + A cluster filesystem. - Allows a cluster of computers to simultaneously use a block device - that is shared between them (with FC, iSCSI, NBD, etc...). GFS reads - and writes to the block device like a local filesystem, but also uses - a lock module to allow the computers coordinate their I/O so - filesystem consistency is maintained. One of the nifty features of - GFS is perfect consistency -- changes made to the filesystem on one - machine show up immediately on all other machines in the cluster. - - To use the GFS2 filesystem, you will need to enable one or more of - the below locking modules. Documentation and utilities for GFS2 can - be found here: http://sources.redhat.com/cluster + Allows a cluster of computers to simultaneously use a block device + that is shared between them (with FC, iSCSI, NBD, etc...). GFS reads + and writes to the block device like a local filesystem, but also uses + a lock module to allow the computers coordinate their I/O so + filesystem consistency is maintained. One of the nifty features of + GFS is perfect consistency -- changes made to the filesystem on one + machine show up immediately on all other machines in the cluster. + + To use the GFS2 filesystem, you will need to enable one or more of + the below locking modules. Documentation and utilities for GFS2 can + be found here: http://sources.redhat.com/cluster config GFS2_FS_LOCKING_NOLOCK tristate GFS2 \nolock\ locking module depends on GFS2_FS help - Single node locking module for GFS2. + Single node locking module for GFS2. - Use this module if you want to use GFS2 on a single node without - its clustering features. You can still take advantage of the - large file support, and upgrade to running a full cluster later on - if required. + Use this module if you want to use GFS2 on a single node without + its clustering features. You can still take advantage of the + large file support, and upgrade to running a full cluster later on + if required. - If you will only be using GFS2 in cluster mode, you do not need this - module. + If you will only be using GFS2 in cluster mode, you do not need this + module. config GFS2_FS_LOCKING_DLM tristate GFS2 DLM locking module @@ -39,9 +39,8 @@ config GFS2_FS_LOCKING_DLM select CONFIGFS_FS select DLM help - Multiple node locking module for GFS2 - - Most users of GFS2 will require this module. It provides the locking - interface between GFS2 and the DLM, which is required to use GFS2 - in a cluster environment. + Multiple node locking module for GFS2 + Most users of GFS2 will require this module. It provides the locking + interface between GFS2 and the DLM, which is required to use GFS2
[PATCH] dlm gfs2: use sysfs
From: Randy Dunlap [EMAIL PROTECTED] With CONFIG_DLM=m, CONFIG_PROC_FS=n, and CONFIG_SYSFS=n, kernel build fails with: WARNING: kernel_subsys [fs/gfs2/locking/dlm/lock_dlm.ko] undefined! WARNING: kernel_subsys [fs/dlm/dlm.ko] undefined! WARNING: kernel_subsys [fs/configfs/configfs.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 Since fs/dlm/lockspace.c and fs/gfs2/locking/dlm/sysfs.c use kernel_subsys, they should either DEPEND on it or SELECT it. Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/dlm/Kconfig |1 + fs/gfs2/Kconfig |1 + 2 files changed, 2 insertions(+) --- linux-2620-rc6.orig/fs/dlm/Kconfig +++ linux-2620-rc6/fs/dlm/Kconfig @@ -5,6 +5,7 @@ config DLM tristate Distributed Lock Manager (DLM) depends on IPV6 || IPV6=n select CONFIGFS_FS + select SYSFS select IP_SCTP if DLM_SCTP help A general purpose distributed lock manager for kernel or userspace --- linux-2620-rc6.orig/fs/gfs2/Kconfig +++ linux-2620-rc6/fs/gfs2/Kconfig @@ -38,6 +38,7 @@ config GFS2_FS_LOCKING_DLM select IP_SCTP if DLM_SCTP select CONFIGFS_FS select DLM + select SYSFS help Multiple node locking module for GFS2 - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: ext3 data=journal hangs
(resending for wider audience) Date: Wed, 10 Jan 2007 16:03:51 -0800 To: linux-ext4@vger.kernel.org On Tue, 9 Jan 2007 15:11:23 -0800 Randy Dunlap wrote: Hi, (2.6.20-rc4, x86_64 1-proc on SMP kernel, 1 GB RAM) I'm running fsx-linux (akpm ext3-tools version) on an ext3 fs with data=journal and fs blocksize=2048. I've been trying to get some kind of kernel messages from it but I can't get any debug IO done successfully. It has hung on me 3 times in a row today. I'm using this command: fsx-linux -l 100M -N 5 -S 0 fsxtestfile This is run in a new partition on a IDE drive (/dev/hda7, using legacy IDE drivers). Any suggestions for debug output? I can see SysRq output on-screen (sometimes) but it doesn't make it to my serial console. Any patches to test? :) More notes: Fails (hangs) with fs blocksize of 1024, 2048, or 4096. On data=journal mode hangs. writeback and ordered run fine. After several runs (hangs), I was able to get some sysrq output to the serial console. kernel config: http://oss.oracle.com/~rdunlap/configs/config-2620-rc4-hangs message log:http://oss.oracle.com/~rdunlap/logs/fsx-capture.txt Can anyone see what fsx-linux is waiting on there? Thanks, --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [FSAIO][PATCH 7/8] Filesystem AIO read
On Thu, 28 Dec 2006 17:22:07 +0100 (MET) Jan Engelhardt wrote: On Dec 28 2006 11:57, Christoph Hellwig wrote: + + if ((error = __lock_page(page, current-io_wait))) { + goto readpage_error; + } This should be error = __lock_page(page, current-io_wait); if (error) goto readpage_error; That's effectively the same. Essentially a style thing, and I see if((err = xyz)) not being uncommon in the kernel tree. The combined if/assignment has been known to contain coding errors that are legal C, just not what was intended. Since the latter replacement shouldn't cause any code efficiency problems and it's more readable, it's becoming preferred. --- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC][PATCH] ensure i_ino uniqueness in filesystems without permanent inode numbers (via idr)
Jeff Layton wrote: On Fri, Dec 01, 2006 at 08:52:27AM -0800, Randy Dunlap wrote: Thanks for having a look, Randy... s/idr_/iunique_/ Doh! Can you tell I cut and pasted this email from earlier ones? :-) - don't attempt to remove inodes with values 100 Please explain that one. (May be obvious to some, but not to me.) Actually, we probably don't need to do that now. My thought here was to add a low range of i_ino numbers that could be used by the filesystem code without needing to call iunique (in particular for things like the root inode in the filesystem). It's probably best to not do this though and let the filesystem handle it on its own. Better to post patches inline (for review) rather than as attachments. Here's an updated (but untested) patch based on your suggestions. I also went ahead and made the exported symbols GPL-only since that seems like it would be appropriate here. Any further thoughts on it? Just needs new/updated patch description. and one typo fixed. diff --git a/fs/inode.c b/fs/inode.c index 26cdb11..e45cec9 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -706,6 +708,32 @@ retry: EXPORT_SYMBOL(iunique); +int iunique_register(struct inode *inode, int max_reserved) +{ + int rv; + + rv = idr_pre_get(inode-i_sb-s_inode_ids, GFP_KERNEL); + if (! rv) No space after !, just: if (!rv) + return -ENOMEM; + + spin_lock(inode-i_sb-s_inode_ids_lock); + rv = idr_get_new_above(inode-i_sb-s_inode_ids, inode, + max_reserved+1, (int *) inode-i_ino); + inode-i_generation = inode-i_sb-s_generation++; + spin_unlock(inode-i_sb-s_inode_ids_lock); + return rv; +} Thanks. -- ~Randy - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -mm v2] hpfs: fix printk format warnings
On Sun, 19 Nov 2006 17:25:50 +0100 (CET) Mikulas Patocka wrote: From: Randy Dunlap [EMAIL PROTECTED] Fix hpfs printk warnings: (why do I only see these in -mm?) Probably because -mm has unsigned long inode number and Linus' kernel has just unsigned int? Change it this way: hpfs_error(inode-i_sb, not a directory, fnode %08lx, (unsigned long)inode-i_ino); --- so that it can work on both. OK, remade/resend. --- From: Randy Dunlap [EMAIL PROTECTED] Fix hpfs printk warnings: fs/hpfs/dir.c:87: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/dir.c:147: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long int' fs/hpfs/dir.c:148: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long int' fs/hpfs/dnode.c:537: warning: format '%08x' expects type 'unsigned int', but argument 5 has type 'long unsigned int' fs/hpfs/dnode.c:854: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'loff_t' fs/hpfs/ea.c:247: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/inode.c:254: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/map.c:129: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:135: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:140: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:147: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:154: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/hpfs/dir.c | 10 +++--- fs/hpfs/dnode.c | 13 + fs/hpfs/ea.c|5 +++-- fs/hpfs/inode.c |5 - fs/hpfs/map.c | 20 ++-- 5 files changed, 37 insertions(+), 16 deletions(-) --- linux-2619-rc5mm2.orig/fs/hpfs/dir.c +++ linux-2619-rc5mm2/fs/hpfs/dir.c @@ -84,7 +84,8 @@ static int hpfs_readdir(struct file *fil } if (!fno-dirflag) { e = 1; - hpfs_error(inode-i_sb, not a directory, fnode %08x,inode-i_ino); + hpfs_error(inode-i_sb, not a directory, fnode %08lx, + (unsigned long)inode-i_ino); } if (hpfs_inode-i_dno != fno-u.external[0].disk_secno) { e = 1; @@ -144,8 +145,11 @@ static int hpfs_readdir(struct file *fil } if (de-first || de-last) { if (hpfs_sb(inode-i_sb)-sb_chk) { - if (de-first !de-last (de-namelen != 2 || de -name[0] != 1 || de-name[1] != 1)) hpfs_error(inode-i_sb, hpfs_readdir: bad ^A^A entry; pos = %08x, old_pos); - if (de-last (de-namelen != 1 || de -name[0] != 255)) hpfs_error(inode-i_sb, hpfs_readdir: bad \\377 entry; pos = %08x, old_pos); + if (de-first !de-last (de-namelen != 2 + || de -name[0] != 1 || de-name[1] != 1)) + hpfs_error(inode-i_sb, hpfs_readdir: bad ^A^A entry; pos = %08lx, old_pos); + if (de-last (de-namelen != 1 || de -name[0] != 255)) + hpfs_error(inode-i_sb, hpfs_readdir: bad \\377 entry; pos = %08lx, old_pos); } hpfs_brelse4(qbh); goto again; --- linux-2619-rc5mm2.orig/fs/hpfs/dnode.c +++ linux-2619-rc5mm2/fs/hpfs/dnode.c @@ -533,10 +533,13 @@ static void delete_empty_dnode(struct in struct buffer_head *bh; struct dnode *d1; struct quad_buffer_head qbh1; - if (hpfs_sb(i-i_sb)-sb_chk) if (up != i-i_ino) { - hpfs_error(i-i_sb, bad pointer to fnode, dnode %08x, pointing to %08x, should be %08x, dno, up, i-i_ino); + if (hpfs_sb(i-i_sb)-sb_chk) + if (up != i-i_ino) { + hpfs_error(i-i_sb, + bad pointer to fnode, dnode %08x, pointing to %08x, should be %08lx, + dno, up, (unsigned long)i-i_ino); return; - } + } if ((d1 = hpfs_map_dnode(i-i_sb, down, qbh1))) { d1-up = up; d1-root_dnode = 1; @@ -851,7 +854,9 @@ struct hpfs_dirent *map_pos_dirent(struc /* Going to the next dirent */ if ((d
[PATCH -mm] hpfs: fix printk format warnings
From: Randy Dunlap [EMAIL PROTECTED] Fix hpfs printk warnings: (why do I only see these in -mm?) fs/hpfs/dir.c:87: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/dir.c:147: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long int' fs/hpfs/dir.c:148: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long int' fs/hpfs/dnode.c:537: warning: format '%08x' expects type 'unsigned int', but argument 5 has type 'long unsigned int' fs/hpfs/dnode.c:854: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'loff_t' fs/hpfs/ea.c:247: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/inode.c:254: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' fs/hpfs/map.c:129: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:135: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:140: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:147: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' fs/hpfs/map.c:154: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'ino_t' Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/hpfs/dir.c | 10 +++--- fs/hpfs/dnode.c | 13 + fs/hpfs/ea.c|2 +- fs/hpfs/inode.c |5 - fs/hpfs/map.c | 20 ++-- 5 files changed, 35 insertions(+), 15 deletions(-) --- linux-2619-rc5mm2.orig/fs/hpfs/dir.c +++ linux-2619-rc5mm2/fs/hpfs/dir.c @@ -84,7 +84,8 @@ static int hpfs_readdir(struct file *fil } if (!fno-dirflag) { e = 1; - hpfs_error(inode-i_sb, not a directory, fnode %08x,inode-i_ino); + hpfs_error(inode-i_sb, not a directory, fnode %08lx, + inode-i_ino); } if (hpfs_inode-i_dno != fno-u.external[0].disk_secno) { e = 1; @@ -144,8 +145,11 @@ static int hpfs_readdir(struct file *fil } if (de-first || de-last) { if (hpfs_sb(inode-i_sb)-sb_chk) { - if (de-first !de-last (de-namelen != 2 || de -name[0] != 1 || de-name[1] != 1)) hpfs_error(inode-i_sb, hpfs_readdir: bad ^A^A entry; pos = %08x, old_pos); - if (de-last (de-namelen != 1 || de -name[0] != 255)) hpfs_error(inode-i_sb, hpfs_readdir: bad \\377 entry; pos = %08x, old_pos); + if (de-first !de-last (de-namelen != 2 + || de -name[0] != 1 || de-name[1] != 1)) + hpfs_error(inode-i_sb, hpfs_readdir: bad ^A^A entry; pos = %08lx, old_pos); + if (de-last (de-namelen != 1 || de -name[0] != 255)) + hpfs_error(inode-i_sb, hpfs_readdir: bad \\377 entry; pos = %08lx, old_pos); } hpfs_brelse4(qbh); goto again; --- linux-2619-rc5mm2.orig/fs/hpfs/dnode.c +++ linux-2619-rc5mm2/fs/hpfs/dnode.c @@ -533,10 +533,13 @@ static void delete_empty_dnode(struct in struct buffer_head *bh; struct dnode *d1; struct quad_buffer_head qbh1; - if (hpfs_sb(i-i_sb)-sb_chk) if (up != i-i_ino) { - hpfs_error(i-i_sb, bad pointer to fnode, dnode %08x, pointing to %08x, should be %08x, dno, up, i-i_ino); + if (hpfs_sb(i-i_sb)-sb_chk) + if (up != i-i_ino) { + hpfs_error(i-i_sb, + bad pointer to fnode, dnode %08x, pointing to %08x, should be %08lx, + dno, up, i-i_ino); return; - } + } if ((d1 = hpfs_map_dnode(i-i_sb, down, qbh1))) { d1-up = up; d1-root_dnode = 1; @@ -851,7 +854,9 @@ struct hpfs_dirent *map_pos_dirent(struc /* Going to the next dirent */ if ((d = de_next_de(de)) dnode_end_de(dnode)) { if (!(++*posp 077)) { - hpfs_error(inode-i_sb, map_pos_dirent: pos crossed dnode boundary; pos = %08x, *posp); + hpfs_error(inode-i_sb, + map_pos_dirent: pos crossed dnode boundary; pos = %08llx, + (unsigned long long)*posp); goto bail
[PATCH] DLM needs SYSFS
From: Randy Dunlap [EMAIL PROTECTED] DLM uses/needs SYSFS (kernel_subsys). This also prevents DLM from being able to select CONFIGFS, which also uses SYSFS and caused yet another build error. Also fix Kconfig help text formatting to use kernel indentation convention. (It seems odd that the menu for DLM depends on INET IP_SCTP EXPERIMENTAL, but DLM depends on a different list of symbols.) Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/dlm/Kconfig | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) --- linux-2619-rc6.orig/fs/dlm/Kconfig +++ linux-2619-rc6/fs/dlm/Kconfig @@ -3,18 +3,18 @@ menu Distributed Lock Manager config DLM tristate Distributed Lock Manager (DLM) - depends on IPV6 || IPV6=n + depends on (IPV6 || IPV6=n) SYSFS select CONFIGFS_FS help - A general purpose distributed lock manager for kernel or userspace - applications. + A general purpose distributed lock manager for kernel or userspace + applications. config DLM_DEBUG bool DLM debugging depends on DLM help - Under the debugfs mount point, the name of each lockspace will - appear as a file in the dlm directory. The output is the - list of resource and locks the local node knows about. + Under the debugfs mount point, the name of each lockspace will + appear as a file in the dlm directory. The output is the + list of resource and locks the local node knows about. endmenu --- - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] FUSE depends on BLOCK
From: Randy Dunlap [EMAIL PROTECTED] Should FUSE depend on BLOCK? Without that and with BLOCK=n, I get: inode.c:(.text+0x3acc5): undefined reference to `sb_set_blocksize' inode.c:(.text+0x3a393): undefined reference to `get_sb_bdev' fs/built-in.o:(.data+0xd718): undefined reference to `kill_block_super Signed-off-by: Randy Dunlap [EMAIL PROTECTED] --- fs/Kconfig |1 + 1 file changed, 1 insertion(+) --- linux-2619-rc5mm2.orig/fs/Kconfig +++ linux-2619-rc5mm2/fs/Kconfig @@ -622,6 +622,7 @@ config AUTOFS4_FS config FUSE_FS tristate Filesystem in Userspace support + depends on BLOCK help With FUSE it is possible to implement a fully functional filesystem in a userspace program. --- - To unsubscribe from this list: send the line unsubscribe linux-fsdevel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html