xfs_export_operations.commit_metadata
This is the commit_metadata export operation for XFS. - Takes one inode to be committed. - Forces the log up to the lsn of the inode. - Doesn't force the log if the inode doesn't have a pincount. Signed-off-by: Ben Myers <bpm@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com> [bfields@citi.umich.edu: trivial whitespace fix] Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
f501912a35
commit
978ebd97d1
|
@ -29,6 +29,7 @@
|
||||||
#include "xfs_vnodeops.h"
|
#include "xfs_vnodeops.h"
|
||||||
#include "xfs_bmap_btree.h"
|
#include "xfs_bmap_btree.h"
|
||||||
#include "xfs_inode.h"
|
#include "xfs_inode.h"
|
||||||
|
#include "xfs_inode_item.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note that we only accept fileids which are long enough rather than allow
|
* Note that we only accept fileids which are long enough rather than allow
|
||||||
|
@ -215,9 +216,28 @@ xfs_fs_get_parent(
|
||||||
return d_obtain_alias(VFS_I(cip));
|
return d_obtain_alias(VFS_I(cip));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STATIC int
|
||||||
|
xfs_fs_nfs_commit_metadata(
|
||||||
|
struct inode *inode)
|
||||||
|
{
|
||||||
|
struct xfs_inode *ip = XFS_I(inode);
|
||||||
|
struct xfs_mount *mp = ip->i_mount;
|
||||||
|
int error = 0;
|
||||||
|
|
||||||
|
xfs_ilock(ip, XFS_ILOCK_SHARED);
|
||||||
|
if (xfs_ipincount(ip)) {
|
||||||
|
error = _xfs_log_force(mp, ip->i_itemp->ili_last_lsn,
|
||||||
|
XFS_LOG_FORCE | XFS_LOG_SYNC, NULL);
|
||||||
|
}
|
||||||
|
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
const struct export_operations xfs_export_operations = {
|
const struct export_operations xfs_export_operations = {
|
||||||
.encode_fh = xfs_fs_encode_fh,
|
.encode_fh = xfs_fs_encode_fh,
|
||||||
.fh_to_dentry = xfs_fs_fh_to_dentry,
|
.fh_to_dentry = xfs_fs_fh_to_dentry,
|
||||||
.fh_to_parent = xfs_fs_fh_to_parent,
|
.fh_to_parent = xfs_fs_fh_to_parent,
|
||||||
.get_parent = xfs_fs_get_parent,
|
.get_parent = xfs_fs_get_parent,
|
||||||
|
.commit_metadata = xfs_fs_nfs_commit_metadata,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue