From: NeilBrown <neilb@suse.com>
To: lustre-devel@lists.lustre.org
Subject: [lustre-devel] [PATCH 12/37] lustre: remove unused function in linkea.
Date: Tue, 19 Feb 2019 11:09:05 +1100 [thread overview]
Message-ID: <155053494549.24125.14755296858886216830.stgit@noble.brown> (raw)
In-Reply-To: <155053473693.24125.6976971762921761309.stgit@noble.brown>
Much of the linkea functionality is server-only.
Keep the parts used on the client, but remove the rest.
Signed-off-by: NeilBrown <neilb@suse.com>
---
.../staging/lustre/lustre/include/lustre_linkea.h | 8 -
drivers/staging/lustre/lustre/obdclass/linkea.c | 150 --------------------
2 files changed, 1 insertion(+), 157 deletions(-)
diff --git a/drivers/staging/lustre/lustre/include/lustre_linkea.h b/drivers/staging/lustre/lustre/include/lustre_linkea.h
index 03db1511bfd3..a028d91dd151 100644
--- a/drivers/staging/lustre/lustre/include/lustre_linkea.h
+++ b/drivers/staging/lustre/lustre/include/lustre_linkea.h
@@ -55,17 +55,9 @@ struct linkea_data {
};
int linkea_data_new(struct linkea_data *ldata, struct lu_buf *buf);
-int linkea_init(struct linkea_data *ldata);
int linkea_init_with_rec(struct linkea_data *ldata);
void linkea_entry_unpack(const struct link_ea_entry *lee, int *reclen,
struct lu_name *lname, struct lu_fid *pfid);
-int linkea_entry_pack(struct link_ea_entry *lee, const struct lu_name *lname,
- const struct lu_fid *pfid);
-int linkea_add_buf(struct linkea_data *ldata, const struct lu_name *lname,
- const struct lu_fid *pfid);
-void linkea_del_buf(struct linkea_data *ldata, const struct lu_name *lname);
-int linkea_links_find(struct linkea_data *ldata, const struct lu_name *lname,
- const struct lu_fid *pfid);
static inline void linkea_first_entry(struct linkea_data *ldata)
{
diff --git a/drivers/staging/lustre/lustre/obdclass/linkea.c b/drivers/staging/lustre/lustre/obdclass/linkea.c
index 33594bd26794..b1aa80a73a2c 100644
--- a/drivers/staging/lustre/lustre/obdclass/linkea.c
+++ b/drivers/staging/lustre/lustre/obdclass/linkea.c
@@ -48,7 +48,7 @@ int linkea_data_new(struct linkea_data *ldata, struct lu_buf *buf)
}
EXPORT_SYMBOL(linkea_data_new);
-int linkea_init(struct linkea_data *ldata)
+static int linkea_init(struct linkea_data *ldata)
{
struct link_ea_header *leh;
@@ -72,7 +72,6 @@ int linkea_init(struct linkea_data *ldata)
ldata->ld_leh = leh;
return 0;
}
-EXPORT_SYMBOL(linkea_init);
int linkea_init_with_rec(struct linkea_data *ldata)
{
@@ -86,32 +85,6 @@ int linkea_init_with_rec(struct linkea_data *ldata)
}
EXPORT_SYMBOL(linkea_init_with_rec);
-/**
- * Pack a link_ea_entry.
- * All elements are stored as chars to avoid alignment issues.
- * Numbers are always big-endian
- * \retval record length
- */
-int linkea_entry_pack(struct link_ea_entry *lee, const struct lu_name *lname,
- const struct lu_fid *pfid)
-{
- struct lu_fid tmpfid;
- int reclen;
-
- tmpfid = *pfid;
- if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_LINKEA_CRASH))
- tmpfid.f_ver = ~0;
- fid_cpu_to_be(&tmpfid, &tmpfid);
- memcpy(&lee->lee_parent_fid, &tmpfid, sizeof(tmpfid));
- memcpy(lee->lee_name, lname->ln_name, lname->ln_namelen);
- reclen = sizeof(struct link_ea_entry) + lname->ln_namelen;
-
- lee->lee_reclen[0] = (reclen >> 8) & 0xff;
- lee->lee_reclen[1] = reclen & 0xff;
- return reclen;
-}
-EXPORT_SYMBOL(linkea_entry_pack);
-
void linkea_entry_unpack(const struct link_ea_entry *lee, int *reclen,
struct lu_name *lname, struct lu_fid *pfid)
{
@@ -126,124 +99,3 @@ void linkea_entry_unpack(const struct link_ea_entry *lee, int *reclen,
}
}
EXPORT_SYMBOL(linkea_entry_unpack);
-
-/**
- * Add a record to the end of link ea buf
- **/
-int linkea_add_buf(struct linkea_data *ldata, const struct lu_name *lname,
- const struct lu_fid *pfid)
-{
- struct link_ea_header *leh = ldata->ld_leh;
- int reclen;
-
- LASSERT(leh);
-
- if (!lname || !pfid)
- return -EINVAL;
-
- reclen = lname->ln_namelen + sizeof(struct link_ea_entry);
- if (unlikely(leh->leh_len + reclen > MAX_LINKEA_SIZE)) {
- /*
- * Use 32-bits to save the overflow time, although it will
- * shrink the ktime_get_real_seconds() returned 64-bits value
- * to 32-bits value, it is still quite large and can be used
- * for about 140 years. That is enough.
- */
- leh->leh_overflow_time = ktime_get_real_seconds();
- if (unlikely(leh->leh_overflow_time == 0))
- leh->leh_overflow_time++;
-
- CDEBUG(D_INODE, "No enough space to hold linkea entry '" DFID ": %.*s' at %u\n",
- PFID(pfid), lname->ln_namelen,
- lname->ln_name, leh->leh_overflow_time);
- return 0;
- }
-
- if (leh->leh_len + reclen > ldata->ld_buf->lb_len) {
- /* Note: this never happens as MAX_LINKEA_SIZE is 4096, while
- * the initial allocation is PAGE_SIZE.
- */
- void *b = krealloc(ldata->ld_buf->lb_buf, leh->leh_len + reclen, GFP_NOFS);
- if (!b)
- return -ENOMEM;
-
- ldata->ld_buf->lb_len = leh->leh_len + reclen;
- leh = ldata->ld_leh = ldata->ld_buf->lb_buf = b;
- }
-
- ldata->ld_lee = ldata->ld_buf->lb_buf + leh->leh_len;
- ldata->ld_reclen = linkea_entry_pack(ldata->ld_lee, lname, pfid);
- leh->leh_len += ldata->ld_reclen;
- leh->leh_reccount++;
- CDEBUG(D_INODE, "New link_ea name '" DFID ":%.*s' is added\n",
- PFID(pfid), lname->ln_namelen, lname->ln_name);
- return 0;
-}
-EXPORT_SYMBOL(linkea_add_buf);
-
-/** Del the current record from the link ea buf */
-void linkea_del_buf(struct linkea_data *ldata, const struct lu_name *lname)
-{
- LASSERT(ldata->ld_leh && ldata->ld_lee);
- LASSERT(ldata->ld_leh->leh_reccount > 0);
-
- ldata->ld_leh->leh_reccount--;
- ldata->ld_leh->leh_len -= ldata->ld_reclen;
- memmove(ldata->ld_lee, (char *)ldata->ld_lee + ldata->ld_reclen,
- (char *)ldata->ld_leh + ldata->ld_leh->leh_len -
- (char *)ldata->ld_lee);
- CDEBUG(D_INODE, "Old link_ea name '%.*s' is removed\n",
- lname->ln_namelen, lname->ln_name);
-
- if ((char *)ldata->ld_lee >= ((char *)ldata->ld_leh +
- ldata->ld_leh->leh_len))
- ldata->ld_lee = NULL;
-}
-EXPORT_SYMBOL(linkea_del_buf);
-
-/**
- * Check if such a link exists in linkEA.
- *
- * \param ldata link data the search to be done on
- * \param lname name in the parent's directory entry pointing to this object
- * \param pfid parent fid the link to be found for
- *
- * \retval 0 success
- * \retval -ENOENT link does not exist
- * \retval -ve on error
- */
-int linkea_links_find(struct linkea_data *ldata, const struct lu_name *lname,
- const struct lu_fid *pfid)
-{
- struct lu_name tmpname;
- struct lu_fid tmpfid;
- int count;
-
- LASSERT(ldata->ld_leh);
-
- /* link #0, if leh_reccount == 0 we skip the loop and return -ENOENT */
- if (likely(ldata->ld_leh->leh_reccount > 0))
- ldata->ld_lee = (struct link_ea_entry *)(ldata->ld_leh + 1);
-
- for (count = 0; count < ldata->ld_leh->leh_reccount; count++) {
- linkea_entry_unpack(ldata->ld_lee, &ldata->ld_reclen,
- &tmpname, &tmpfid);
- if (tmpname.ln_namelen == lname->ln_namelen &&
- lu_fid_eq(&tmpfid, pfid) &&
- (strncmp(tmpname.ln_name, lname->ln_name,
- tmpname.ln_namelen) == 0))
- break;
- ldata->ld_lee = (struct link_ea_entry *)((char *)ldata->ld_lee +
- ldata->ld_reclen);
- }
-
- if (count == ldata->ld_leh->leh_reccount) {
- CDEBUG(D_INODE, "Old link_ea name '%.*s' not found\n",
- lname->ln_namelen, lname->ln_name);
- ldata->ld_lee = NULL;
- ldata->ld_reclen = 0;
- return -ENOENT;
- }
- return 0;
-}
-EXPORT_SYMBOL(linkea_links_find);
next prev parent reply other threads:[~2019-02-19 0:09 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-19 0:09 [lustre-devel] [PATCH 00/37] More lustre patches from obdclass NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 01/37] lustre: obdclass: char obd_ioctl_getdata type NeilBrown
2019-02-24 18:35 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 02/37] lustre: llite: don't use class_setup_tunables() NeilBrown
2019-02-24 16:35 ` James Simmons
2019-02-25 22:27 ` NeilBrown
2019-02-26 22:18 ` James Simmons
2019-02-24 16:52 ` [lustre-devel] [PATCH 03/37] lustre: embed typ_kobj if obd_type James Simmons
2019-02-25 22:38 ` NeilBrown
2019-02-26 20:41 ` Simmons, James A.
2019-02-19 0:09 ` [lustre-devel] [PATCH 14/37] lustre: llog: change lgh_refcount to struct kref NeilBrown
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 13/37] lustre: llog: remove lgh_hdr_lock NeilBrown
2019-02-24 20:29 ` James Simmons
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 07/37] lustre: obd_type: discard obd_type_lock NeilBrown
2019-02-24 17:02 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 08/37] lustre: obdclass: don't copy ops structures in to new type NeilBrown
2019-02-24 17:03 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 16/37] lustre: obdclass: typo: Banlance -> Balance NeilBrown
2019-02-24 17:39 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 05/37] lustre: obd_type: use typ_kobj.name as typ_name NeilBrown
2019-02-24 16:56 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 03/37] lustre: embed typ_kobj if obd_type NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 09/37] lustre: obdclass: fix module load locking NeilBrown
2019-02-24 17:04 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 17/37] lustre: simplify lprocfs_read_frac_helper NeilBrown
2019-02-24 17:52 ` James Simmons
2019-02-26 23:59 ` NeilBrown
2019-02-27 1:06 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 18/37] lustre: obdclass: discard lprocfs_single/seq_release NeilBrown
2019-02-24 17:53 ` James Simmons
2019-02-19 0:09 ` NeilBrown [this message]
2019-02-25 18:16 ` [lustre-devel] [PATCH 12/37] lustre: remove unused function in linkea Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 10/37] lustre: kernelcomm: pass correct gfp_t to kmalloc NeilBrown
2019-02-24 17:05 ` James Simmons
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 21/37] lustre: remove several MAX_STRING_SIZE defines NeilBrown
2019-02-24 19:07 ` James Simmons
2019-02-27 0:41 ` NeilBrown
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 19/37] lustre: discard lprocfs_strnstr() NeilBrown
2019-02-24 17:53 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 15/37] lustre: llog_obd: Convert loc_refcount to refcount_t NeilBrown
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 11/37] lustre: kernelcomm: make libcfs_kkuc_msg_put static NeilBrown
2019-02-24 17:15 ` James Simmons
2019-02-26 23:45 ` NeilBrown
2019-02-27 22:36 ` James Simmons
2019-02-27 22:37 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 04/37] lustre: collect all resource releasing for obj_type NeilBrown
2019-02-24 16:54 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 06/37] lustre: obd_type: discard obd_types linked list NeilBrown
2019-02-24 17:00 ` James Simmons
2019-02-19 0:09 ` [lustre-devel] [PATCH 20/37] lustre: convert rsi_sem to a spinlock NeilBrown
2019-02-25 18:16 ` Andreas Dilger
2019-02-27 0:22 ` NeilBrown
2019-02-27 1:00 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 32/37] lustre: portals_handle: rename ops to owner NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 22/37] lustre: lprocfs: use log2.h macros instead of shift loop NeilBrown
2019-02-24 18:09 ` James Simmons
2019-02-26 20:55 ` James Simmons
2019-02-27 0:51 ` NeilBrown
2019-02-27 0:54 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 25/37] lustre: deprecate libcfs_debug_vmsg2 NeilBrown
2019-02-24 20:02 ` James Simmons
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 30/37] lustre: handle: move refcount into the lustre_handle NeilBrown
2019-02-27 6:32 ` Andreas Dilger
2019-02-27 21:48 ` NeilBrown
2019-02-27 22:14 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 28/37] lustre: remove scope and source from class_incref and class_decref NeilBrown
2019-02-27 6:52 ` Andreas Dilger
2019-02-28 0:39 ` NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 26/37] lustre: remove libcfs_debug_vmsg2 NeilBrown
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 23/37] lustre: prefer to use tabs for alignment NeilBrown
2019-02-24 18:51 ` James Simmons
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 27/37] lustre: discard lu_ref NeilBrown
2019-02-24 20:28 ` James Simmons
2019-02-27 1:17 ` NeilBrown
2019-02-27 5:35 ` Andreas Dilger
2019-03-01 6:45 ` Mike Pershin
2019-02-19 0:09 ` [lustre-devel] [PATCH 29/37] lustre: handles: discard h_owner in favour of h_ops NeilBrown
2019-02-27 6:37 ` Andreas Dilger
2019-02-27 21:41 ` NeilBrown
2019-02-28 6:41 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 33/37] lustre: portals_handle: remove locking from class_handle2object() NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 34/37] lustre: portals_handle: use hlist for hash lists NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 31/37] lustre: discard OBD_FREE_RCU NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 24/37] lustre: lu_object: remove extra newline from debug printing NeilBrown
2019-02-24 19:08 ` James Simmons
2019-02-25 18:16 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 35/37] lustre: portals_handle: discard h_lock NeilBrown
2019-02-19 0:09 ` [lustre-devel] [PATCH 37/37] lustre: obd_sysfs: error-check value stored in jobid_var NeilBrown
2019-02-27 6:17 ` Andreas Dilger
2019-03-01 2:35 ` NeilBrown
2019-03-01 8:32 ` Andreas Dilger
2019-03-01 14:30 ` Patrick Farrell
2019-03-14 0:34 ` NeilBrown
2019-03-14 14:12 ` Patrick Farrell
2019-03-14 22:56 ` NeilBrown
2019-03-14 23:05 ` Andreas Dilger
2019-02-19 0:09 ` [lustre-devel] [PATCH 36/37] lustre: remove unused fields from struct obd_device NeilBrown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=155053494549.24125.14755296858886216830.stgit@noble.brown \
--to=neilb@suse.com \
--cc=lustre-devel@lists.lustre.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).