streamline init/exit path
PATCH 1/1 streamline init/exit path
Currently the xfs module init/exit code is a mess. It's farmed out over a lot of function with very little error checking. This patch merges xfs_init_zones and xfs_init into init_xfs_fs, and makes sure we propagate all initialization failures properly and clean up after them. Various runtime initializations are replaced with compile-time initializations where possible to make this easier. The exit path is similarly consolidated.
fs/xfs/linux-2.6/xfs_stats.c +12 -3
@@ -98,12 +98,21 @@ xfs_read_xfsstats(return len; } -void +int xfs_init_procfs (void ) {if (!proc_mkdir ("fs/xfs" ,NULL )) -return ; -create_proc_read_entry ("fs/xfs/stat" ,0 ,NULL , xfs_read_xfsstats,NULL ); + goto out; + +if (!create_proc_read_entry ("fs/xfs/stat" ,0 ,NULL , + xfs_read_xfsstats,NULL )) + goto out_remove_entry; +return 0 ; + + out_remove_entry: +remove_proc_entry ("fs/xfs" ,NULL ); + out: +return -ENOMEM ; }void
fs/xfs/linux-2.6/xfs_stats.h +8 -3
@@ -134,7 +134,7 @@ DECLARE_PER_CPU(struct xfsstats, xfsstat#define XFS_STATS_DEC (v) (per_cpu(xfsstats, current_cpu()).v--)#define XFS_STATS_ADD (v, inc) (per_cpu(xfsstats, current_cpu()).v += (inc)) -extern void xfs_init_procfs (void ); +extern int xfs_init_procfs (void );extern void xfs_cleanup_procfs (void );
@@ -144,8 +144,13 @@ extern void xfs_cleanup_procfs(void);# define XFS_STATS_DEC (count)# define XFS_STATS_ADD (count, inc) -static inline void xfs_init_procfs (void ) { }; -static inline void xfs_cleanup_procfs (void ) { }; +static inline int xfs_init_procfs (void ) +{ + return 0 +}; +static inline void xfs_cleanup_procfs (void ) +{ +};#endif /* !CONFIG_PROC_FS */
fs/xfs/linux-2.6/xfs_super.c +230 -52
325 lines not on this page · raw message
fs/xfs/linux-2.6/xfs_sysctl.c +5 -3
@@ -259,15 +259,17 @@ static ctl_table xfs_root_table[] = { {} }; -void +int xfs_sysctl_register (void ) { xfs_table_header =register_sysctl_table (xfs_root_table); +if (!xfs_table_header) +return -ENOMEM ; +return 0 ; }void xfs_sysctl_unregister (void ) { -if (xfs_table_header) -unregister_sysctl_table (xfs_table_header); +unregister_sysctl_table (xfs_table_header); }
fs/xfs/linux-2.6/xfs_sysctl.h +2 -2
@@ -93,10 +93,10 @@ enum {extern xfs_param_t xfs_params;#ifdef CONFIG_SYSCTL -extern void xfs_sysctl_register (void ); +extern int xfs_sysctl_register (void );extern void xfs_sysctl_unregister (void );#else -# define xfs_sysctl_register () do { } while (0) +# define xfs_sysctl_register () (0)# define xfs_sysctl_unregister () do { } while (0)#endif /* CONFIG_SYSCTL */
fs/xfs/support/uuid.c +1 -7
@@ -17,7 +17,7 @@*/ #include <xfs.h> -static mutex_t uuid_monitor; +static DEFINE_MUTEX (uuid_monitor);static int uuid_table_size;static uuid_t *uuid_table;
@@ -132,9 +132,3 @@ uuid_table_remove(uuid_t *uuid)ASSERT (i < uuid_table_size);mutex_unlock (&uuid_monitor); } - -void __init -uuid_init (void ) -{ -mutex_init (&uuid_monitor); -}
fs/xfs/support/uuid.h +0 -1
@@ -22,7 +22,6 @@ typedef struct {unsigned char __u_bits[16 ]; } uuid_t; -extern void uuid_init (void );extern void uuid_create_nil (uuid_t *uuid);extern int uuid_is_nil (uuid_t *uuid);extern int uuid_equal (uuid_t *uuid1,uuid_t *uuid2);
fs/xfs/xfs_da_btree.c +1 -1
@@ -2218,7 +2218,7 @@ xfs_da_state_free(xfs_da_state_t *state)#ifdef XFS_DABUF_DEBUG xfs_dabuf_t *xfs_dabuf_global_list; -spinlock_t xfs_dabuf_global_lock; +static DEFINE_SPINLOCK (xfs_dabuf_global_lock);#endif /*
fs/xfs/xfs_error.c +0 -8
@@ -66,14 +66,6 @@ int xfs_etest[XFS_NUM_INJECT_ERROR];int64_t xfs_etest_fsid[XFS_NUM_INJECT_ERROR ];char * xfs_etest_fsname[XFS_NUM_INJECT_ERROR ]; -void -xfs_error_test_init (void ) -{ -memset (xfs_etest,0 ,sizeof (xfs_etest)); -memset (xfs_etest_fsid,0 ,sizeof (xfs_etest_fsid)); -memset (xfs_etest_fsname,0 ,sizeof (xfs_etest_fsname)); -} -int xfs_error_test (int error_tag,int *fsidp,char *expression,int line,char *file,unsigned long randfactor)
fs/xfs/xfs_error.h +0 -1
@@ -127,7 +127,6 @@ extern void xfs_corruption_error(char *t#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR ))extern int xfs_error_test (int ,int *,char *,int ,char *,unsigned long ); -extern void xfs_error_test_init (void );#define XFS_NUM_INJECT_ERROR 10
fs/xfs/xfs_filestream.c +3 -1
@@ -397,10 +397,12 @@ intxfs_filestream_init (void) { item_zone =kmem_zone_init (sizeof (fstrm_item_t),"fstrm_item" ); +if (!item_zone) +return -ENOMEM ;#ifdef XFS_FILESTREAMS_TRACE xfs_filestreams_trace_buf =ktrace_alloc (XFS_FSTRM_KTRACE_SIZE ,KM_SLEEP );#endif -return item_zone ?0 : -ENOMEM ; +return 0 ; }/*
fs/xfs/xfs_mount.h +0 -3
@@ -543,9 +543,6 @@ extern void xfs_qmops_put(struct xfs_mouextern struct xfs_dmops xfs_dmcore_xfs; -extern int xfs_init (void ); -extern void xfs_cleanup (void ); -#endif /* __KERNEL__ */ #endif /* __XFS_MOUNT_H__ */
fs/xfs/xfs_mru_cache.c +8 -5
@@ -307,15 +307,18 @@ xfs_mru_cache_init(void) xfs_mru_elem_zone =kmem_zone_init (sizeof (xfs_mru_cache_elem_t),"xfs_mru_cache_elem" );if (!xfs_mru_elem_zone) -return ENOMEM ; + goto out; xfs_mru_reap_wq =create_singlethread_workqueue ("xfs_mru_cache" ); -if (!xfs_mru_reap_wq) { -kmem_zone_destroy (xfs_mru_elem_zone); -return ENOMEM ; - } +if (!xfs_mru_reap_wq) + goto out_destroy_mru_elem_zone;return 0 ; + + out_destroy_mru_elem_zone: +kmem_zone_destroy (xfs_mru_elem_zone); + out: +return -ENOMEM ; }void
fs/xfs/xfs_vfsops.c +0 -131
137 lines not on this page · raw message
Quoted 7 lines · Christoph Hellwig
Currently the xfs module init/exit code is a mess. It's farmed out over a lot of function with very little error checking. This patch merges
xfs_init_zonesandxfs_initintoinit_xfs_fs, and makes sure we propagate all initialization failures properly and clean up after them. Various runtime initializations are replaced with compile-time initializations where possible to make this easier. The exit path is similarly consolidated.
Looks good, appart from the fact that I don't see the point of merging xfs_{init,destroy}_zones into xfs_{init,exit}, appart from clobbering it and making it less readeable.
could be:
error = xfs_init_zones();
if (error)
goto out;
and all the other error cases will end withxfs_destroy_zones();
That would look much more like the rest of the calls in these functions.
Signature · 1 line
Niv Sardi
Quoted 7 lines · Niv Sardi
Looks good, appart from the fact that I don't see the point of merging xfs_{init,destroy}_zones into xfs_{init,exit}, appart from clobbering it and making it less readeable.
could be:
error =xfs_init_zones();
if (error)
Quoted 6 lines
goto out;and all the other error cases will end with
xfs_destroy_zones();That would look much more like the rest of the calls in these functions.
I don't really see the point for splitting this up, it's not like it makes the initialization much simpler. But hey, if that's the only objection I can changed it.
At least someone is looking at my xfs patches :)
Quoted 10 lines · Christoph Hellwig
Quoted 9 lines · Niv Sardi
Looks good, appart from the fact that I don't see the point of merging xfs_{init,destroy}_zones into xfs_{init,exit}, appart from clobbering it and making it less readeable.
could be:
error =xfs_init_zones();
if (error)goto out;
Quoted 8 lines
Quoted 4 lines
and all the other error cases will end with
xfs_destroy_zones();That would look much more like the rest of the calls in these functions.
I don't really see the point for splitting this up, it's not like it makes the initialization much simpler. But hey, if that's the only objection I can changed it.
it's not splitting it up, just leaving it split up like it was, reduces the function length, reduces the out: gotos, and makes it nicely fit in one editor window =)
Quoted 1 line
At least someone is looking at my xfs patches :)
Cheers =)
Signature · 1 line
Niv Sardi
Updated patch below. There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also changed the ktrace allocations to KM_MAYFAIL and handled errors resulting from that.
And yes, we really should replace the XFS_*_TRACE ifdefs with a single XFS_TRACE..
fs/xfs/linux-2.6/xfs_stats.c +12 -3
@@ -98,12 +98,21 @@ xfs_read_xfsstats(return len; } -void +int xfs_init_procfs (void ) {if (!proc_mkdir ("fs/xfs" ,NULL )) -return ; -create_proc_read_entry ("fs/xfs/stat" ,0 ,NULL , xfs_read_xfsstats,NULL ); + goto out; + +if (!create_proc_read_entry ("fs/xfs/stat" ,0 ,NULL , + xfs_read_xfsstats,NULL )) + goto out_remove_entry; +return 0 ; + + out_remove_entry: +remove_proc_entry ("fs/xfs" ,NULL ); + out: +return -ENOMEM ; }void
fs/xfs/linux-2.6/xfs_stats.h +8 -3
@@ -134,7 +134,7 @@ DECLARE_PER_CPU(struct xfsstats, xfsstat#define XFS_STATS_DEC (v) (per_cpu(xfsstats, current_cpu()).v--)#define XFS_STATS_ADD (v, inc) (per_cpu(xfsstats, current_cpu()).v += (inc)) -extern void xfs_init_procfs (void ); +extern int xfs_init_procfs (void );extern void xfs_cleanup_procfs (void );
@@ -144,8 +144,13 @@ extern void xfs_cleanup_procfs(void);# define XFS_STATS_DEC (count)# define XFS_STATS_ADD (count, inc) -static inline void xfs_init_procfs (void ) { }; -static inline void xfs_cleanup_procfs (void ) { }; +static inline int xfs_init_procfs (void ) +{ + return 0 +}; +static inline void xfs_cleanup_procfs (void ) +{ +};#endif /* !CONFIG_PROC_FS */
fs/xfs/linux-2.6/xfs_super.c +277 -52
374 lines not on this page · raw message
fs/xfs/linux-2.6/xfs_sysctl.c +5 -3
@@ -259,15 +259,17 @@ static ctl_table xfs_root_table[] = { {} }; -void +int xfs_sysctl_register (void ) { xfs_table_header =register_sysctl_table (xfs_root_table); +if (!xfs_table_header) +return -ENOMEM ; +return 0 ; }void xfs_sysctl_unregister (void ) { -if (xfs_table_header) -unregister_sysctl_table (xfs_table_header); +unregister_sysctl_table (xfs_table_header); }
fs/xfs/linux-2.6/xfs_sysctl.h +2 -2
@@ -93,10 +93,10 @@ enum {extern xfs_param_t xfs_params;#ifdef CONFIG_SYSCTL -extern void xfs_sysctl_register (void ); +extern int xfs_sysctl_register (void );extern void xfs_sysctl_unregister (void );#else -# define xfs_sysctl_register () do { } while (0) +# define xfs_sysctl_register () (0)# define xfs_sysctl_unregister () do { } while (0)#endif /* CONFIG_SYSCTL */
fs/xfs/support/uuid.c +1 -7
@@ -17,7 +17,7 @@*/ #include <xfs.h> -static mutex_t uuid_monitor; +static DEFINE_MUTEX (uuid_monitor);static int uuid_table_size;static uuid_t *uuid_table;
@@ -132,9 +132,3 @@ uuid_table_remove(uuid_t *uuid)ASSERT (i < uuid_table_size);mutex_unlock (&uuid_monitor); } - -void __init -uuid_init (void ) -{ -mutex_init (&uuid_monitor); -}
fs/xfs/support/uuid.h +0 -1
@@ -22,7 +22,6 @@ typedef struct {unsigned char __u_bits[16 ]; } uuid_t; -extern void uuid_init (void );extern void uuid_create_nil (uuid_t *uuid);extern int uuid_is_nil (uuid_t *uuid);extern int uuid_equal (uuid_t *uuid1,uuid_t *uuid2);
fs/xfs/xfs_da_btree.c +1 -1
@@ -2218,7 +2218,7 @@ xfs_da_state_free(xfs_da_state_t *state)#ifdef XFS_DABUF_DEBUG xfs_dabuf_t *xfs_dabuf_global_list; -spinlock_t xfs_dabuf_global_lock; +static DEFINE_SPINLOCK (xfs_dabuf_global_lock);#endif /*
fs/xfs/xfs_error.c +0 -8
@@ -66,14 +66,6 @@ int xfs_etest[XFS_NUM_INJECT_ERROR];int64_t xfs_etest_fsid[XFS_NUM_INJECT_ERROR ];char * xfs_etest_fsname[XFS_NUM_INJECT_ERROR ]; -void -xfs_error_test_init (void ) -{ -memset (xfs_etest,0 ,sizeof (xfs_etest)); -memset (xfs_etest_fsid,0 ,sizeof (xfs_etest_fsid)); -memset (xfs_etest_fsname,0 ,sizeof (xfs_etest_fsname)); -} -int xfs_error_test (int error_tag,int *fsidp,char *expression,int line,char *file,unsigned long randfactor)
fs/xfs/xfs_error.h +0 -1
@@ -127,7 +127,6 @@ extern void xfs_corruption_error(char *t#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR ))extern int xfs_error_test (int ,int *,char *,int ,char *,unsigned long ); -extern void xfs_error_test_init (void );#define XFS_NUM_INJECT_ERROR 10
fs/xfs/xfs_filestream.c +3 -1
@@ -397,10 +397,12 @@ intxfs_filestream_init (void) { item_zone =kmem_zone_init (sizeof (fstrm_item_t),"fstrm_item" ); +if (!item_zone) +return -ENOMEM ;#ifdef XFS_FILESTREAMS_TRACE xfs_filestreams_trace_buf =ktrace_alloc (XFS_FSTRM_KTRACE_SIZE ,KM_SLEEP );#endif -return item_zone ?0 : -ENOMEM ; +return 0 ; }/*
fs/xfs/xfs_mount.h +0 -3
@@ -545,9 +545,6 @@ extern void xfs_qmops_put(struct xfs_mouextern struct xfs_dmops xfs_dmcore_xfs; -extern int xfs_init (void ); -extern void xfs_cleanup (void ); -#endif /* __KERNEL__ */ #endif /* __XFS_MOUNT_H__ */
fs/xfs/xfs_mru_cache.c +8 -5
@@ -307,15 +307,18 @@ xfs_mru_cache_init(void) xfs_mru_elem_zone =kmem_zone_init (sizeof (xfs_mru_cache_elem_t),"xfs_mru_cache_elem" );if (!xfs_mru_elem_zone) -return ENOMEM ; + goto out; xfs_mru_reap_wq =create_singlethread_workqueue ("xfs_mru_cache" ); -if (!xfs_mru_reap_wq) { -kmem_zone_destroy (xfs_mru_elem_zone); -return ENOMEM ; - } +if (!xfs_mru_reap_wq) + goto out_destroy_mru_elem_zone;return 0 ; + + out_destroy_mru_elem_zone: +kmem_zone_destroy (xfs_mru_elem_zone); + out: +return -ENOMEM ; }void
fs/xfs/xfs_vfsops.c +0 -131
137 lines not on this page · raw message
TAKE streamline init/exit path
Quoted 6 lines · Christoph Hellwig
Updated patch below. There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also changed the ktrace allocations to
KM_MAYFAILand handled errors resulting from that.And yes, we really should replace the XFS_*_TRACE ifdefs with a single
XFS_TRACE..
Thanks,
it's in, forgot to send the TAKE message to oss, here it comes:
Subject: TAKE 976035 - streamline init/exit path
Date: Wed, 21 May 2008 18:02:18 +1000 Workarea: chook.melbourne.sgi.com:/build/xaiki/isms/mangrove-1.3 Inspected by: hch
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:31210a
streamline init/exit path
Currently the xfs module init/exit code is a mess. It's farmed out over a lot of function with very little error checking. This patch makes sure we propagate all initialization failures properly and clean up after them. Various runtime initializations are replaced with compile-time initializations where possible to make this easier. The exit path is similarly consolidated.
There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also changed the ktrace allocations to KM_MAYFAIL and handled errors resulting from that.
And yes, we really should replace the XFS_*_TRACE ifdefs with a single XFS_TRACE..
fs/xfs/linux-2.6/xfs_stats.c - 1.24 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_stats.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=hfs/xfs/linux-2.6/xfs_stats.h - 1.16 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_stats.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=hfs/xfs/linux-2.6/xfs_super.c - 1.429 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.429&r2=text&tr2=1.428&f=hfs/xfs/linux-2.6/xfs_sysctl.c - 1.44 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.c.diff?r1=text&tr1=1.44&r2=text&tr2=1.43&f=hfs/xfs/linux-2.6/xfs_sysctl.h - 1.29 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.h.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=hfs/xfs/support/uuid.c - 1.22 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/support/uuid.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=hfs/xfs/support/uuid.h - 1.14 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/support/uuid.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=hfs/xfs/xfs_da_btree.c - 1.180 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_da_btree.c.diff?r1=text&tr1=1.180&r2=text&tr2=1.179&f=hfs/xfs/xfs_error.c - 1.61 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_error.c.diff?r1=text&tr1=1.61&r2=text&tr2=1.60&f=hfs/xfs/xfs_error.h - 1.50 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_error.h.diff?r1=text&tr1=1.50&r2=text&tr2=1.49&f=hfs/xfs/xfs_filestream.c - 1.6 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_filestream.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=hfs/xfs/xfs_mount.h - 1.270 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.270&r2=text&tr2=1.269&f=hfs/xfs/xfs_mru_cache.c - 1.7 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mru_cache.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=hfs/xfs/xfs_vfsops.c - 1.568 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.568&r2=text&tr2=1.567&f=h
Signature · 1 line
Niv Sardi
Re: TAKE streamline init/exit path
Quoted 12 lines · Niv Sardi
Quoted 6 lines · Christoph Hellwig
Updated patch below. There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also changed the ktrace allocations to
KM_MAYFAILand handled errors resulting from that.And yes, we really should replace the XFS_*_TRACE ifdefs with a single
XFS_TRACE..Thanks,
Quoted 7 lines
it's in, forgot to send the TAKE message to oss, here it comes:
Subject: TAKE 976035 - streamline init/exit path
Date: Wed, 21 May 2008 18:02:18 +1000 Workarea: chook.melbourne.sgi.com:/build/xaiki/isms/mangrove-1.3 Inspected by: hch
Well, mangrove was the sles10 NAS tree if I remember correctly. And it indeed hasn't made it to either the CVS or git tree on oss.sgi.com yet.
Re: TAKE streamline init/exit path
Quoted 17 lines · Christoph Hellwig
Quoted 16 lines · Niv Sardi
Quoted 2 lines · Christoph Hellwig
Updated patch below. There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also changed
the
Quoted 1 line
ktrace allocations to
KM_MAYFAILand handled errors resulting fromthat.
Quoted 3 lines
And yes, we really should replace the XFS_*_TRACE ifdefs with a single
XFS_TRACE..Thanks,
it's in, forgot to send the TAKE message to oss, here it comes:
Quoted 8 lines
Quoted 5 lines
Subject: TAKE 976035 - streamline init/exit path
Date: Wed, 21 May 2008 18:02:18 +1000 Workarea: chook.melbourne.sgi.com:/build/xaiki/isms/mangrove-1.3 Inspected by: hchWell, mangrove was the sles10 NAS tree if I remember correctly. And it indeed hasn't made it to either the CVS or git tree on oss.sgi.com yet.
That's the name of the workarea (and why it's called that... I have no idea!!)
But, the mod did go to the correct location:
Modid: xfs-linux-melb:xfs-kern:31210a
But there is a few hour gap going from Melbourne to the US repository and then to oss.
Barry.
Re: TAKE streamline init/exit path
Quoted 31 lines · Barry Naujok
Quoted 17 lines · Christoph Hellwig
Quoted 16 lines · Niv Sardi
Quoted 2 lines · Christoph Hellwig
Updated patch below. There's now split out function to create/destroy the kmem zones and alloc/free the trace buffers. I've also
changed the
Quoted 1 line
ktrace allocations to
KM_MAYFAILand handled errors resultingfrom that.
Quoted 3 lines
And yes, we really should replace the XFS_*_TRACE ifdefs with a single
XFS_TRACE..Thanks,
it's in, forgot to send the TAKE message to oss, here it comes:
Quoted 8 lines
Quoted 5 lines
Subject: TAKE 976035 - streamline init/exit path
Date: Wed, 21 May 2008 18:02:18 +1000 Workarea: chook.melbourne.sgi.com:/build/xaiki/isms/mangrove-1.3 Inspected by: hchWell, mangrove was the sles10 NAS tree if I remember correctly. And it indeed hasn't made it to either the CVS or git tree on oss.sgi.com yet.
That's the name of the workarea (and why it's called that... I have no idea!!)
Quoted 6 lines
But, the mod did go to the correct location:
Modid: xfs-linux-melb:xfs-kern:31210a
But there is a few hour gap going from Melbourne to the US repository and then to oss.
You really don't want to know how much kittens had to suffer for that TAKE message to be sent out =)
Cheers,
Signature · 1 line
Niv Sardi
Re: TAKE streamline init/exit path
In reply to Barry NaujokQuoted 6 lines · Barry Naujok
Quoted 2 lines
Well, mangrove was the sles10 NAS tree if I remember correctly. And it indeed hasn't made it to either the CVS or git tree on oss.sgi.com yet.
That's the name of the workarea (and why it's called that... I have no idea!!)
Quoted 6 lines
But, the mod did go to the correct location:
Modid: xfs-linux-melb:xfs-kern:31210a
But there is a few hour gap going from Melbourne to the US repository and then to oss.
Neither this nor your kmem_free commit have made it yet the CVS tree on oss.sgi.com. I guess the push is broken again for some reason.