--- src/grep.c.ar	2014-05-31 10:35:34.000000000 -0400
+++ src/grep.c	2014-09-04 13:57:54.811602414 -0400
@@ -274,7 +274,7 @@
 static struct exclude *excluded_directory_patterns;
 /* Short options.  */
 static char const short_options[] =
-"0123456789A:B:C:D:EFGHIPTUVX:abcd:e:f:hiLlm:noqRrsuvwxyZz";
+"0123456789A:B:C:D:EFGHINPTUVX:abcd:e:f:hiLlm:noqRrsuvwxyZz";
 
 /* Non-boolean long options that have no corresponding short equivalents.  */
 enum
@@ -343,6 +343,8 @@
   {"version", no_argument, NULL, 'V'},
   {"with-filename", no_argument, NULL, 'H'},
   {"word-regexp", no_argument, NULL, 'w'},
+
+  {"no-atime", no_argument, NULL, 'N'},
   {0, 0, 0, 0}
 };
 
@@ -1349,10 +1351,17 @@
   return grepfile (dirdesc, ent->fts_accpath, follow, command_line);
 }
 
+static int no_atime;
+
 static int
 grepfile (int dirdesc, char const *name, int follow, int command_line)
 {
-  int desc = openat_safer (dirdesc, name, O_RDONLY | (follow ? 0 : O_NOFOLLOW));
+  int desc = openat_safer (dirdesc,
+                           name,
+                             O_RDONLY
+                           | (follow ? 0 : O_NOFOLLOW)
+                           | (no_atime ? O_NOATIME : 0)
+                          );
   if (desc < 0)
     {
       if (follow || (errno != ELOOP && errno != EMLINK))
@@ -1553,6 +1562,7 @@
   -s, --no-messages         suppress error messages\n\
   -v, --invert-match        select non-matching lines\n\
   -V, --version             display version information and exit\n\
+  -N, --no-atime            open files with O_NOATIME\n\
       --help                display this help text and exit\n"));
       printf (_("\
 \n\
@@ -2051,6 +2061,10 @@
         show_version = 1;
         break;
 
+      case 'N':
+        no_atime = 1;
+        break;
+
       case 'a':
         binary_files = TEXT_BINARY_FILES;
         break;
