mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
0b61f8a407
Remove the verbose license text from XFS files and replace them with SPDX tags. This does not change the license of any of the code, merely refers to the common, up-to-date license files in LICENSES/ This change was mostly scripted. fs/xfs/Makefile and fs/xfs/libxfs/xfs_fs.h were modified by hand, the rest were detected and modified by the following command: for f in `git grep -l "GNU General" fs/xfs/` ; do echo $f cat $f | awk -f hdr.awk > $f.new mv -f $f.new $f done And the hdr.awk script that did the modification (including detecting the difference between GPL-2.0 and GPL-2.0+ licenses) is as follows: $ cat hdr.awk BEGIN { hdr = 1.0 tag = "GPL-2.0" str = "" } /^ \* This program is free software/ { hdr = 2.0; next } /any later version./ { tag = "GPL-2.0+" next } /^ \*\// { if (hdr > 0.0) { print "// SPDX-License-Identifier: " tag print str print $0 str="" hdr = 0.0 next } print $0 next } /^ \* / { if (hdr > 1.0) next if (hdr > 0.0) { if (str != "") str = str "\n" str = str $0 next } print $0 next } /^ \*/ { if (hdr > 0.0) next print $0 next } // { if (hdr > 0.0) { if (str != "") str = str "\n" str = str $0 next } print $0 } END { } $ Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
79 lines
1.6 KiB
C
79 lines
1.6 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (c) 2000-2006 Silicon Graphics, Inc.
|
|
* All Rights Reserved.
|
|
*/
|
|
#ifndef __XFS_SUPPORT_MRLOCK_H__
|
|
#define __XFS_SUPPORT_MRLOCK_H__
|
|
|
|
#include <linux/rwsem.h>
|
|
|
|
typedef struct {
|
|
struct rw_semaphore mr_lock;
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
int mr_writer;
|
|
#endif
|
|
} mrlock_t;
|
|
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
#define mrinit(mrp, name) \
|
|
do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
|
|
#else
|
|
#define mrinit(mrp, name) \
|
|
do { init_rwsem(&(mrp)->mr_lock); } while (0)
|
|
#endif
|
|
|
|
#define mrlock_init(mrp, t,n,s) mrinit(mrp, n)
|
|
#define mrfree(mrp) do { } while (0)
|
|
|
|
static inline void mraccess_nested(mrlock_t *mrp, int subclass)
|
|
{
|
|
down_read_nested(&mrp->mr_lock, subclass);
|
|
}
|
|
|
|
static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
|
|
{
|
|
down_write_nested(&mrp->mr_lock, subclass);
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
mrp->mr_writer = 1;
|
|
#endif
|
|
}
|
|
|
|
static inline int mrtryaccess(mrlock_t *mrp)
|
|
{
|
|
return down_read_trylock(&mrp->mr_lock);
|
|
}
|
|
|
|
static inline int mrtryupdate(mrlock_t *mrp)
|
|
{
|
|
if (!down_write_trylock(&mrp->mr_lock))
|
|
return 0;
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
mrp->mr_writer = 1;
|
|
#endif
|
|
return 1;
|
|
}
|
|
|
|
static inline void mrunlock_excl(mrlock_t *mrp)
|
|
{
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
mrp->mr_writer = 0;
|
|
#endif
|
|
up_write(&mrp->mr_lock);
|
|
}
|
|
|
|
static inline void mrunlock_shared(mrlock_t *mrp)
|
|
{
|
|
up_read(&mrp->mr_lock);
|
|
}
|
|
|
|
static inline void mrdemote(mrlock_t *mrp)
|
|
{
|
|
#if defined(DEBUG) || defined(XFS_WARN)
|
|
mrp->mr_writer = 0;
|
|
#endif
|
|
downgrade_write(&mrp->mr_lock);
|
|
}
|
|
|
|
#endif /* __XFS_SUPPORT_MRLOCK_H__ */
|