2022-03-09 18:49:45

by Thiago Rafael Becker

[permalink] [raw]
Subject: [RFC PATCH 6/7] readahead: add mountpoint and fstype options

Add ways to configure the system by mountpoint or fstype.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1946283
Signed-off-by: Thiago Rafael Becker <[email protected]>
---
tools/nfs-readahead-udev/parser.y | 15 +++++++++++----
tools/nfs-readahead-udev/scanner.l | 5 +++++
2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/tools/nfs-readahead-udev/parser.y b/tools/nfs-readahead-udev/parser.y
index f6db05c4..5951c99d 100644
--- a/tools/nfs-readahead-udev/parser.y
+++ b/tools/nfs-readahead-udev/parser.y
@@ -10,20 +10,25 @@ extern FILE *yyin;
void yyerror(const char *s);

// This should be visible only to this file
-extern struct config_entry *config_entry_new(void);
+extern struct config_entry *config_entry_new();

struct config_entry *current;
%}

%union {
+ char *sval;
int ival;
}

+%token <sval> STRING
%token <ival> INT
%token EQ
%token ENDL
%token DEFAULT
+%token MOUNTPOINT
+%token FSTYPE
%token READAHEAD
+%token <sval> FS
%token END_CONFIG 0

%%
@@ -35,7 +40,7 @@ line:
tokens endls {
struct config_entry *new = config_entry_new();
list_add(&current->list, &new->list);
- current = new;
+ current = new;
}


@@ -49,9 +54,11 @@ default:
DEFAULT

pair:
- READAHEAD EQ INT { current->readahead = $3; }
+ MOUNTPOINT EQ STRING { current->mountpoint = $3; }
+ | FSTYPE EQ FS { current->fstype = $3; }
+ | READAHEAD EQ INT { current->readahead = $3; }

-endls:
+endls:
endls ENDL | ENDL

%%
diff --git a/tools/nfs-readahead-udev/scanner.l b/tools/nfs-readahead-udev/scanner.l
index d1ceb90b..c6fb3f0c 100644
--- a/tools/nfs-readahead-udev/scanner.l
+++ b/tools/nfs-readahead-udev/scanner.l
@@ -5,10 +5,15 @@
%option noyywrap
%%
default { return DEFAULT; }
+mountpoint { return MOUNTPOINT; }
+fstype { return FSTYPE; }
readahead { return READAHEAD; }
+nfs4 { yylval.sval = strdup(yytext); return FS; }
+nfs { yylval.sval = strdup(yytext); return FS; }
[ \t] ;
#[^\n]*\n { return ENDL; }
\n { return ENDL; }
[0-9]+ { yylval.ival = atoi(yytext); return INT; }
+[a-zA-Z0-9/]+ { yylval.sval = strdup(yytext); return STRING; }
= { return EQ; }
%%
--
2.35.1