On Fri, Nov 01, 2019 at 03:07:17PM -0700, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig <hch@xxxxxx> YAY! Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > --- > fs/xfs/Makefile | 1 - > fs/xfs/libxfs/xfs_da_btree.h | 1 - > fs/xfs/libxfs/xfs_da_format.c | 46 ----------------------------------- > fs/xfs/libxfs/xfs_dir2.c | 2 -- > fs/xfs/libxfs/xfs_dir2.h | 9 ------- > fs/xfs/xfs_inode.h | 3 --- > fs/xfs/xfs_iops.c | 1 - > fs/xfs/xfs_mount.h | 2 -- > 8 files changed, 65 deletions(-) > delete mode 100644 fs/xfs/libxfs/xfs_da_format.c > > diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile > index 06b68b6115bc..aceca2f9a3db 100644 > --- a/fs/xfs/Makefile > +++ b/fs/xfs/Makefile > @@ -27,7 +27,6 @@ xfs-y += $(addprefix libxfs/, \ > xfs_bmap_btree.o \ > xfs_btree.o \ > xfs_da_btree.o \ > - xfs_da_format.o \ > xfs_defer.o \ > xfs_dir2.o \ > xfs_dir2_block.o \ > diff --git a/fs/xfs/libxfs/xfs_da_btree.h b/fs/xfs/libxfs/xfs_da_btree.h > index a3333e7a084d..7362e706cda7 100644 > --- a/fs/xfs/libxfs/xfs_da_btree.h > +++ b/fs/xfs/libxfs/xfs_da_btree.h > @@ -10,7 +10,6 @@ > struct xfs_inode; > struct xfs_trans; > struct zone; > -struct xfs_dir_ops; > > /* > * Directory/attribute geometry information. There will be one of these for each > diff --git a/fs/xfs/libxfs/xfs_da_format.c b/fs/xfs/libxfs/xfs_da_format.c > deleted file mode 100644 > index 498363ac193d..000000000000 > --- a/fs/xfs/libxfs/xfs_da_format.c > +++ /dev/null > @@ -1,46 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -/* > - * Copyright (c) 2000,2002,2005 Silicon Graphics, Inc. > - * Copyright (c) 2013 Red Hat, Inc. > - * All Rights Reserved. > - */ > -#include "xfs.h" > -#include "xfs_fs.h" > -#include "xfs_shared.h" > -#include "xfs_format.h" > -#include "xfs_log_format.h" > -#include "xfs_trans_resv.h" > -#include "xfs_mount.h" > -#include "xfs_inode.h" > -#include "xfs_dir2.h" > -#include "xfs_dir2_priv.h" > - > -static const struct xfs_dir_ops xfs_dir2_ops = { > -}; > - > -static const struct xfs_dir_ops xfs_dir2_ftype_ops = { > -}; > - > -static const struct xfs_dir_ops xfs_dir3_ops = { > -}; > - > -/* > - * Return the ops structure according to the current config. If we are passed > - * an inode, then that overrides the default config we use which is based on > - * feature bits. > - */ > -const struct xfs_dir_ops * > -xfs_dir_get_ops( > - struct xfs_mount *mp, > - struct xfs_inode *dp) > -{ > - if (dp) > - return dp->d_ops; > - if (mp->m_dir_inode_ops) > - return mp->m_dir_inode_ops; > - if (xfs_sb_version_hascrc(&mp->m_sb)) > - return &xfs_dir3_ops; > - if (xfs_sb_version_hasftype(&mp->m_sb)) > - return &xfs_dir2_ftype_ops; > - return &xfs_dir2_ops; > -} > diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c > index 33a6e8aacdba..b1fc89173ea6 100644 > --- a/fs/xfs/libxfs/xfs_dir2.c > +++ b/fs/xfs/libxfs/xfs_dir2.c > @@ -104,8 +104,6 @@ xfs_da_mount( > ASSERT(mp->m_sb.sb_versionnum & XFS_SB_VERSION_DIRV2BIT); > ASSERT(xfs_dir2_dirblock_bytes(&mp->m_sb) <= XFS_MAX_BLOCKSIZE); > > - mp->m_dir_inode_ops = xfs_dir_get_ops(mp, NULL); > - > mp->m_dir_geo = kmem_zalloc(sizeof(struct xfs_da_geometry), > KM_MAYFAIL); > mp->m_attr_geo = kmem_zalloc(sizeof(struct xfs_da_geometry), > diff --git a/fs/xfs/libxfs/xfs_dir2.h b/fs/xfs/libxfs/xfs_dir2.h > index f869ee01a381..ccdbc612fb76 100644 > --- a/fs/xfs/libxfs/xfs_dir2.h > +++ b/fs/xfs/libxfs/xfs_dir2.h > @@ -28,15 +28,6 @@ extern struct xfs_name xfs_name_dotdot; > */ > extern unsigned char xfs_mode_to_ftype(int mode); > > -/* > - * directory operations vector for encode/decode routines > - */ > -struct xfs_dir_ops { > -}; > - > -extern const struct xfs_dir_ops * > - xfs_dir_get_ops(struct xfs_mount *mp, struct xfs_inode *dp); > - > /* > * Generic directory interface routines > */ > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > index bcfb35a9c5ca..6516dd1fc86a 100644 > --- a/fs/xfs/xfs_inode.h > +++ b/fs/xfs/xfs_inode.h > @@ -37,9 +37,6 @@ typedef struct xfs_inode { > struct xfs_ifork *i_cowfp; /* copy on write extents */ > struct xfs_ifork i_df; /* data fork */ > > - /* operations vectors */ > - const struct xfs_dir_ops *d_ops; /* directory ops vector */ > - > /* Transaction and locking information. */ > struct xfs_inode_log_item *i_itemp; /* logging information */ > mrlock_t i_lock; /* inode lock */ > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > index 40d4495e013c..155c9269b7bb 100644 > --- a/fs/xfs/xfs_iops.c > +++ b/fs/xfs/xfs_iops.c > @@ -1317,7 +1317,6 @@ xfs_setup_inode( > lockdep_set_class(&inode->i_rwsem, > &inode->i_sb->s_type->i_mutex_dir_key); > lockdep_set_class(&ip->i_lock.mr_lock, &xfs_dir_ilock_class); > - ip->d_ops = ip->i_mount->m_dir_inode_ops; > } else { > lockdep_set_class(&ip->i_lock.mr_lock, &xfs_nondir_ilock_class); > } > diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h > index 3ddc5f4d1053..6dc1ff761572 100644 > --- a/fs/xfs/xfs_mount.h > +++ b/fs/xfs/xfs_mount.h > @@ -12,7 +12,6 @@ struct xfs_mru_cache; > struct xfs_nameops; > struct xfs_ail; > struct xfs_quotainfo; > -struct xfs_dir_ops; > struct xfs_da_geometry; > > /* dynamic preallocation free space thresholds, 5% down to 1% */ > @@ -158,7 +157,6 @@ typedef struct xfs_mount { > int m_swidth; /* stripe width */ > uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ > const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ > - const struct xfs_dir_ops *m_dir_inode_ops; /* vector of dir inode ops */ > uint m_chsize; /* size of next field */ > atomic_t m_active_trans; /* number trans frozen */ > struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ > -- > 2.20.1 >