On Tue, May 01, 2012 at 09:01:05AM +1000, Dave Chinner wrote:
> On Mon, Apr 30, 2012 at 05:26:49PM -0400, J. Bruce Fields wrote:
> > On Wed, Apr 11, 2012 at 04:37:35PM -0400, J. Bruce Fields wrote:
> > > On Wed, Apr 11, 2012 at 04:03:35PM -0400, Christoph Hellwig wrote:
> > > > Can you add a new s_feature_flags instead of s_flags which is shared
> > > > with the mount user ABI? MS_I_VERSION should also move there.
> > >
> > > I was wondering about that. Yes, that makes a lot more sense, I'll work
> > > on it.
> >
> > Just something like this?
>
> .....
>
> > #define S_SYNC 1 /* Writes are synced at once */
> > @@ -268,7 +271,7 @@ struct inodes_stat_t {
> > ((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
> > #define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
> > #define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
> > -#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
> > +#define IS_I_VERSION(inode) ((inode)->i_sb->s_flags & SF_I_VERSION)
>
> (inode)->i_sb->s_feature_flags?
Whoops, thanks.
> > #define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
> > #define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
> > @@ -1428,7 +1431,8 @@ struct super_block {
> > const struct dquot_operations *dq_op;
> > const struct quotactl_ops *s_qcop;
> > const struct export_operations *s_export_op;
> > - unsigned long s_flags;
> > + unsigned long s_flags; /* mount flags */
> > + unsigned int s_feature_flags;
>
> why not an unsigned long like s_flags?
OK.
(Why does it matter? I figured we can always extend it later.)
--b.
|