Re: [PATCH v6 2/2] xfs: avoid transaction reservation recursion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 24, 2020 at 01:09:25PM -0700, Andrew Morton wrote:
> On Mon, 24 Aug 2020 09:42:34 +0800 Yafang Shao <laoar.shao@xxxxxxxxx> wrote:
> 
> > --- a/include/linux/iomap.h
> > +++ b/include/linux/iomap.h
> > @@ -271,4 +271,11 @@ int iomap_swapfile_activate(struct swap_info_struct *sis,
> >  # define iomap_swapfile_activate(sis, swapfile, pagespan, ops)	(-EIO)
> >  #endif /* CONFIG_SWAP */
> >  
> > +/* Use the journal_info to indicate current is in a transaction */
> > +static inline bool
> > +fstrans_context_active(void)
> > +{
> > +	return current->journal_info != NULL;
> > +}
> 
> Why choose iomap.h for this?

Because it gets used in iomap/buffered-io.c

I don't think this is necessarily a useful abstraction, to be honest.
I'd just open-code 'if (current->journal_info)' or !current->journal_info,
whichever way round the code is:

fs/btrfs/delalloc-space.c:              if (current->journal_info)
fs/ceph/xattr.c:                if (current->journal_info) {
fs/gfs2/bmap.c:         if (current->journal_info) {
fs/jbd2/transaction.c:  if (WARN_ON(current->journal_info)) {
fs/reiserfs/super.c:    if (!current->journal_info) {

(to pluck a few examples from existing filesystems)




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux